var __gh = require("react").createElement, __gf = require("react").Fragment; var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var stdin_exports={};__export(stdin_exports,{default:()=>stdin_default,featureConfig:()=>featureConfig});module.exports=__toCommonJS(stdin_exports);var dataSources=[];var automations=[{name:"arquitectura_cliente",public:!0}];var ESTILOS=` html,body{background:#f5f5f7} .cs{--tinta:#1d1d1f;--gris:#6e6e73;--suave:#86868b;--raya:#d2d2d7;--fondo:#f5f5f7;--blanco:#fff;--curva:cubic-bezier(.2,.8,.2,1); font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue","Segoe UI",Roboto,Arial,sans-serif; color:var(--tinta);background:var(--blanco);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden} .cs *{box-sizing:border-box} .cs a{color:inherit;text-decoration:none} .cs button{font:inherit;color:inherit} .cs-num{font-variant-numeric:tabular-nums} /* Cabecera: la marca del estudio y, al bajar, por d\xF3nde se va */ .cs-cab{position:sticky;top:0;z-index:30;min-height:56px;display:flex;align-items:center;gap:20px;padding:0 clamp(16px,4vw,48px); background:rgba(255,255,255,.82);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid transparent;transition:border-color .3s} .cs-cab.bajado{border-bottom-color:rgba(0,0,0,.08)} .cs-cab img{height:22px;max-width:140px;object-fit:contain;display:block} .cs-cab .marca{font-weight:700;font-size:17px;letter-spacing:-.02em;line-height:1.15;padding:8px 0} @media (max-width:760px){.cs-cab .marca{font-size:15px}} .cs-cab .titulo{font-size:13px;color:var(--gris);opacity:0;transform:translateY(4px);transition:opacity .3s,transform .3s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0} .cs-cab.bajado .titulo{opacity:1;transform:none} .cs-cab nav{margin-left:auto;display:flex;gap:22px;font-size:13px;color:var(--gris)} .cs-cab nav a{transition:color .2s}.cs-cab nav a:hover{color:var(--tinta)} @media (max-width:760px){.cs-cab nav{display:none}.cs-cab .titulo{margin-left:auto}} /* La casa: a pantalla completa, flotando sobre un gris que se aclara en el centro */ .cs-hero{position:relative;height:calc(100svh - 56px);min-height:620px;max-height:1100px;display:flex;flex-direction:column;background:radial-gradient(120% 90% at 50% 58%,#fff 0%,#f5f5f7 55%,#e8e8ed 100%);overflow:hidden} .cs-hero-texto{text-align:center;padding:clamp(24px,4.5vh,56px) 20px 0;position:relative;z-index:2;pointer-events:none} .cs-ante{font-size:clamp(15px,1.6vw,19px);font-weight:600;color:var(--gris);margin:0} .cs-hero h1{font-size:clamp(38px,5.6vw,80px);font-weight:700;letter-spacing:-.045em;line-height:1.02;margin:8px auto 0;max-width:20ch} .cs-hero .sub{font-size:clamp(17px,1.9vw,24px);color:var(--gris);margin:14px 0 0;letter-spacing:-.01em} .cs-escena{position:relative;flex:1;min-height:0} .cs-mv{position:absolute;inset:0;width:100%;height:100%;background:transparent;--poster-color:transparent;outline:none;transition:opacity .6s var(--curva),transform .6s var(--curva)} .cs-mv.cambiando{opacity:.25;transform:scale(.985)} .cs-escena .cargando{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:13px;color:var(--suave);pointer-events:none;transition:opacity .4s} .cs-pista{position:absolute;left:0;right:0;top:10px;text-align:center;font-size:12.5px;color:var(--suave);pointer-events:none;z-index:2} /* Los mandos de la casa, en una barra que flota abajo */ .cs-mandos{position:relative;z-index:3;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:0 16px clamp(20px,4vh,40px)} .cs-barra{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;background:rgba(255,255,255,.78);backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px); border-radius:999px;padding:8px 10px 8px 18px;box-shadow:0 1px 0 rgba(255,255,255,.6) inset,0 12px 40px rgba(0,0,0,.08),0 0 0 .5px rgba(0,0,0,.06)} .cs-sep{width:1px;height:24px;background:rgba(0,0,0,.1)} .cs-seg{display:inline-flex;background:rgba(118,118,128,.12);border-radius:999px;padding:3px;gap:2px;max-width:100%;overflow-x:auto;scrollbar-width:none} .cs-seg::-webkit-scrollbar{display:none} .cs-seg button{border:0;background:transparent;border-radius:999px;padding:7px 14px;font-size:13.5px;font-weight:500;color:var(--tinta);cursor:pointer;white-space:nowrap;transition:background .25s,box-shadow .25s} .cs-seg button[aria-pressed=true]{background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.12),0 0 0 .5px rgba(0,0,0,.04);font-weight:600} .cs-acab{display:flex;align-items:center;gap:12px} .cs-acab .nombre{font-size:13px;color:var(--gris);min-width:96px;text-align:right} .cs-acab .nombre b{color:var(--tinta);font-weight:600} .cs-muestras{display:flex;gap:8px} .cs-muestra{width:26px;height:26px;border-radius:50%;border:0;padding:0;cursor:pointer;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.2);transition:transform .2s var(--curva),box-shadow .2s} .cs-muestra:hover{transform:scale(1.08)} .cs-muestra[aria-pressed=true]{box-shadow:0 0 0 2px #fff,0 0 0 3.5px var(--tinta)} .cs-ar{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;background:var(--tinta);color:#fff !important;font-size:14px;font-weight:600;padding:11px 18px;cursor:pointer;white-space:nowrap;transition:transform .2s var(--curva),background .2s} .cs-ar:hover{background:#000;transform:scale(1.02)} .cs-ar.claro{background:#fff;color:var(--tinta) !important;box-shadow:0 0 0 .5px rgba(0,0,0,.12)} .cs-qr{position:absolute;bottom:calc(100% + 12px);right:0;width:248px;background:#fff;border-radius:22px;padding:18px;box-shadow:0 24px 60px rgba(0,0,0,.16),0 0 0 .5px rgba(0,0,0,.06);text-align:center;animation:cs-sube .35s var(--curva) both} .cs-qr img{width:168px;height:168px;display:block;margin:4px auto 12px} .cs-qr p{margin:0;font-size:13px;color:var(--gris);line-height:1.4} .cs-qr b{display:block;font-size:15px;color:var(--tinta);margin-bottom:4px} @media (max-width:760px){ .cs-barra{border-radius:24px;padding:12px;flex-direction:column;align-items:stretch;width:100%} .cs-sep{display:none} .cs-acab{justify-content:space-between} .cs-acab .nombre{text-align:left;min-width:0} .cs-ar{justify-content:center;padding:14px 18px;font-size:15px} .cs-seg{align-self:center} } /* Las partes de la p\xE1gina */ .cs-parte{padding:clamp(80px,12vw,160px) clamp(20px,5vw,64px)} .cs-parte.gris{background:var(--fondo)} .cs-ancho{max-width:1120px;margin:0 auto} .cs-ojo{font-size:clamp(17px,1.7vw,21px);font-weight:600;color:var(--gris);margin:0 0 10px} .cs-h2{font-size:clamp(34px,5.4vw,64px);font-weight:700;letter-spacing:-.04em;line-height:1.04;margin:0;max-width:18ch} .cs-lead{font-size:clamp(17px,1.6vw,21px);color:var(--gris);line-height:1.45;margin:18px 0 0;max-width:46ch} /* Las cifras, enormes */ .cs-cifras{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,40px);margin-top:clamp(40px,6vw,72px)} .cs-cifra b{display:block;font-size:clamp(40px,5.8vw,76px);font-weight:700;letter-spacing:-.045em;line-height:1} .cs-cifra b small{font-size:.42em;letter-spacing:-.01em;margin-left:4px;font-weight:600} .cs-cifra .que{display:block;margin-top:10px;font-size:15px;color:var(--gris)} @media (max-width:760px){.cs-cifras{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:36px}} /* Los planos */ .cs-plano-cab{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap} .cs-plano{display:flex;flex-direction:column;gap:clamp(20px,3vw,32px);margin-top:clamp(32px,5vw,56px)} .cs-lamina{position:relative;background:#fff;border-radius:28px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.08),0 0 0 .5px rgba(0,0,0,.05);cursor:zoom-in;border:0;padding:clamp(16px,4vw,56px);width:100%;display:block} .cs-lamina img{display:block;width:100%;height:auto;transition:transform .8s var(--curva)} .cs-lamina:hover img{transform:scale(1.015)} .cs-estancias{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));column-gap:clamp(24px,3vw,48px);background:#fff;border-radius:24px;padding:6px clamp(16px,2.4vw,28px);box-shadow:0 0 0 .5px rgba(0,0,0,.06)} .cs-estancia{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #ececf0} .cs-estancia .que{flex:1;min-width:0} .cs-estancia .que b{display:block;font-size:15px;font-weight:600;letter-spacing:-.01em} .cs-estancia .que span{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--gris);margin-top:2px} .cs-estancia .cuanto{font-size:15px;font-weight:600} .cs-punto{width:10px;height:10px;border-radius:50%;flex-shrink:0;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.25)} .cs-total{grid-column:1/-1;display:flex;justify-content:space-between;padding:16px 0 12px;font-size:15px;font-weight:700} /* La l\xE1mina a toda pantalla */ .cs-grande{position:fixed;inset:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:grid;place-items:center;padding:clamp(12px,4vw,48px);animation:cs-funde .3s ease both;cursor:zoom-out} .cs-grande img{max-width:100%;max-height:100%;object-fit:contain;border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.12);animation:cs-crece .45s var(--curva) both} .cs-cerrar{position:fixed;top:16px;right:16px;width:40px;height:40px;border-radius:50%;border:0;background:rgba(118,118,128,.16);display:grid;place-items:center;cursor:pointer} /* Los materiales */ .cs-materiales{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:clamp(20px,2.4vw,32px);margin-top:clamp(36px,5vw,60px)} .cs-material .muestra{aspect-ratio:1;border-radius:28px;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.08),0 20px 50px rgba(0,0,0,.06);transition:transform .6s var(--curva)} .cs-material:hover .muestra{transform:translateY(-4px)} .cs-material b{display:block;font-size:17px;font-weight:600;letter-spacing:-.015em;margin-top:16px} .cs-material .marca{font-size:14px;color:var(--gris);margin-top:2px} .cs-material .donde{font-size:13px;color:var(--suave);margin-top:8px;line-height:1.4} @media (max-width:520px){.cs-materiales{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.cs-material .muestra{border-radius:20px}.cs-material b{font-size:15px}} /* El presupuesto */ .cs-pres{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,6vw,96px);align-items:end} .cs-pres .total{font-size:clamp(52px,9vw,124px);font-weight:700;letter-spacing:-.05em;line-height:.95;margin:12px 0 0} .cs-pres .nota{font-size:15px;color:var(--gris);margin:16px 0 0;line-height:1.45;max-width:36ch} .cs-cap{padding:18px 0;border-top:1px solid var(--raya)} .cs-cap:last-child{border-bottom:1px solid var(--raya)} .cs-cap .fila{display:flex;justify-content:space-between;gap:16px;font-size:17px} .cs-cap .fila b{font-weight:600} .cs-cap .barra{height:6px;border-radius:99px;background:#e8e8ed;margin-top:12px;overflow:hidden} .cs-cap .barra i{display:block;height:100%;border-radius:99px;background:var(--tinta);transform-origin:left;transform:scaleX(0);transition:transform 1.4s var(--curva)} .visto .cs-cap .barra i{transform:scaleX(var(--p))} @media (max-width:860px){.cs-pres{grid-template-columns:1fr}} /* El pie */ .cs-pie{padding:clamp(72px,10vw,140px) 20px 48px;text-align:center;background:var(--fondo)} .cs-pie img{height:clamp(30px,4vw,44px);max-width:220px;object-fit:contain;display:block;margin:0 auto} .cs-pie .marca{font-size:clamp(28px,4vw,40px);font-weight:700;letter-spacing:-.03em} .cs-pie p{font-size:15px;color:var(--gris);margin:20px auto 0;max-width:40ch;line-height:1.5} .cs-pie small{display:block;margin-top:56px;font-size:12px;color:var(--suave)} /* Avisos (enlace cerrado, que no existe) y la portada */ .cs-aviso{min-height:100vh;display:grid;place-items:center;text-align:center;padding:24px;background:radial-gradient(120% 90% at 50% 40%,#fff 0%,#f5f5f7 60%,#ececf0 100%)} .cs-aviso img{height:34px;max-width:200px;object-fit:contain;display:block;margin:0 auto 40px} .cs-aviso h1{font-size:clamp(32px,5vw,56px);font-weight:700;letter-spacing:-.04em;line-height:1.05;margin:0 auto;max-width:16ch} .cs-aviso p{font-size:clamp(16px,1.6vw,19px);color:var(--gris);margin:16px auto 0;max-width:38ch;line-height:1.45} /* El recorrido por dentro, a pantalla completa */ .cs-rc{--tinta:#1d1d1f;--curva:cubic-bezier(.2,.8,.2,1);position:fixed;inset:0;z-index:60;background:#dfe5ea;animation:cs-funde .4s ease both;color:#fff; font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue","Segoe UI",Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased} .cs-rc *{box-sizing:border-box} .cs-rc button{font:inherit} .cs-rc-lienzo{position:absolute;inset:0;cursor:grab} .cs-rc-lienzo:active{cursor:grabbing} .cs-rc-velo{position:absolute;inset:0;background:#0b0b0d;opacity:0;pointer-events:none} .cs-rc-carga{position:absolute;inset:0;display:grid;place-content:center;gap:14px;text-align:center;color:var(--tinta);pointer-events:none} .cs-rc-carga b{font-size:17px;font-weight:600} .cs-rc-carga .barra{width:180px;height:4px;border-radius:99px;background:rgba(0,0,0,.1);overflow:hidden} .cs-rc-carga .barra i{display:block;height:100%;background:var(--tinta);transform-origin:left;transition:transform .3s} .cs-rc-arriba{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:12px;padding:max(14px,env(safe-area-inset-top)) clamp(14px,3vw,28px) 0;pointer-events:none} .cs-rc-arriba > *{pointer-events:auto} /* El cristal de Apple: claro, esmerilado, con el texto oscuro */ .cs-rc-boton,.cs-rc-donde,.cs-rc-panel,.cs-rc-pista{background:rgba(255,255,255,.74);backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);box-shadow:0 10px 34px rgba(0,0,0,.14),0 0 0 .5px rgba(0,0,0,.06);color:var(--tinta)} .cs-rc-boton{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:42px;min-width:42px;border-radius:999px;border:0;color:var(--tinta) !important;cursor:pointer;font-size:14px;font-weight:600;flex-shrink:0;transition:transform .2s var(--curva),background .2s} .cs-rc-boton:hover{transform:scale(1.04)} .cs-rc-boton.ancho{padding:0 16px 0 13px} .cs-rc-boton[aria-pressed=true]{background:var(--tinta);color:#fff !important} .cs-rc-donde{margin:0 auto;min-width:0;max-width:min(560px,60vw);border-radius:20px;padding:9px 20px 10px;text-align:center;animation:cs-sube .45s var(--curva) both} .cs-rc-donde b{display:block;font-size:17px;font-weight:700;letter-spacing:-.02em;line-height:1.2} .cs-rc-donde span{display:block;font-size:12.5px;color:#6e6e73;margin-top:2px} .cs-rc-pista{position:absolute;left:50%;top:calc(max(14px,env(safe-area-inset-top)) + 64px);transform:translateX(-50%);padding:12px 18px;border-radius:999px;font-size:14px;font-weight:500;pointer-events:none;animation:cs-funde .6s ease both;white-space:nowrap} .cs-rc-abajo{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center;padding:0 12px max(16px,env(safe-area-inset-bottom));pointer-events:none} .cs-rc-panel{pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:10px;width:min(760px,100%);border-radius:28px;padding:10px;animation:cs-sube .5s var(--curva) both} .cs-rc-estancias{display:flex;gap:6px;overflow-x:auto;max-width:100%;padding:2px 4px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent);mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent)} .cs-rc-estancias::-webkit-scrollbar{display:none} .cs-rc-estancia{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;border:0;border-radius:14px;padding:9px 14px;background:rgba(118,118,128,.1);color:var(--tinta) !important;font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .2s,transform .2s var(--curva)} .cs-rc-estancia:hover{background:rgba(118,118,128,.18)} .cs-rc-estancia small{font-size:12px;color:#6e6e73;font-weight:500} .cs-rc-estancia[aria-pressed=true]{background:var(--tinta);color:#fff !important} .cs-rc-estancia[aria-pressed=true] small{color:rgba(255,255,255,.7)} .cs-rc-estancia i{width:10px;height:10px;border-radius:50%;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.25)} /* Las notas: chinchetas en su sitio y la hoja para escribir o leer */ .cs-rc-pines{position:absolute;inset:0;pointer-events:none;overflow:hidden} .cs-rc-pin{position:absolute;left:0;top:0;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;border:2px solid #fff;background:var(--tinta);color:#fff !important;font-size:13px;font-weight:700;display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.28);cursor:pointer;opacity:0;transition:opacity .25s;will-change:transform} .cs-rc-pin.respondida::after{content:"";position:absolute;top:-3px;right:-3px;width:10px;height:10px;border-radius:50%;background:#34c759;border:2px solid #fff} .cs-rc-pin.resuelta{background:#fff;color:var(--tinta) !important;border-color:var(--tinta)} .cs-rc-pin.elegida{box-shadow:0 0 0 4px rgba(255,255,255,.55),0 6px 18px rgba(0,0,0,.28)} .cs-rc-pin.nueva{background:#fff;color:var(--tinta) !important;animation:cs-late 1.2s ease-in-out infinite} .cs-rc-hoja{pointer-events:auto;width:min(460px,100%);border-radius:24px;padding:16px 18px 14px;display:flex;flex-direction:column;gap:8px;background:rgba(255,255,255,.86);backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);box-shadow:0 10px 34px rgba(0,0,0,.16),0 0 0 .5px rgba(0,0,0,.06);color:var(--tinta);animation:cs-sube .4s var(--curva) both} .cs-rc-hoja b{font-size:16px;font-weight:700;letter-spacing:-.015em} .cs-rc-hoja .sub{font-size:12.5px;color:#6e6e73} .cs-rc-hoja .cabeza{display:flex;align-items:center;justify-content:space-between;gap:10px} .cs-rc-hoja .cerrar{width:28px;height:28px;border-radius:50%;border:0;background:rgba(118,118,128,.14);display:grid;place-items:center;cursor:pointer;color:var(--tinta) !important} .cs-rc-hoja textarea,.cs-rc-hoja input{width:100%;border:0;border-radius:12px;background:rgba(118,118,128,.12);padding:11px 13px;font:inherit;font-size:15px;color:var(--tinta);outline:none;resize:none} .cs-rc-hoja textarea:focus,.cs-rc-hoja input:focus{background:#fff;box-shadow:0 0 0 2px var(--tinta)} .cs-rc-hoja .texto{margin:0;font-size:16px;font-weight:600;letter-spacing:-.01em;line-height:1.4;white-space:pre-wrap} .cs-rc-hoja .de{display:flex;align-items:center;gap:8px;font-size:13.5px;color:#6e6e73} .cs-rc-hoja .de button{border:0;background:none;padding:0;font:inherit;font-size:13.5px;font-weight:600;color:var(--tinta) !important;cursor:pointer;text-decoration:underline;text-underline-offset:2px} .cs-rc-hoja .campo{display:flex;flex-direction:column;gap:6px} .cs-rc-hoja .campo > span{font-size:13px;font-weight:600} .cs-rc-hoja .campo small{font-size:12px;color:#6e6e73} .cs-rc-hoja .respuesta{margin-top:4px;padding:11px 13px;border-radius:14px;background:rgba(118,118,128,.1)} .cs-rc-hoja .respuesta b{font-size:12.5px;font-weight:700;display:block;margin-bottom:2px} .cs-rc-hoja .respuesta p{margin:0;font-size:14.5px;line-height:1.45;white-space:pre-wrap} .cs-rc-hoja .error{font-size:13px;color:var(--tinta)} .cs-rc-hoja .botones{display:flex;gap:8px;justify-content:flex-end;margin-top:4px} .cs-rc-hoja .botones button{border:0;border-radius:999px;padding:10px 16px;font:inherit;font-size:14px;font-weight:600;cursor:pointer} .cs-rc-hoja .principal{background:var(--tinta);color:#fff !important} .cs-rc-hoja .principal:disabled{opacity:.35;cursor:default} .cs-rc-hoja .secundario{background:rgba(118,118,128,.14);color:var(--tinta) !important} @media (max-width:760px){.cs-rc-boton.ancho span{display:none}.cs-rc-boton.ancho{padding:0;width:42px}.cs-rc-donde{max-width:none;flex:1}.cs-rc-panel{border-radius:24px}} /* C\xF3mo entra todo */ @keyframes cs-entra{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}} @keyframes cs-sube{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}} @keyframes cs-funde{from{opacity:0}to{opacity:1}} @keyframes cs-crece{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}} @keyframes cs-late{0%,100%{opacity:.35}50%{opacity:.8}} .cs-entra{animation:cs-entra 1s var(--curva) both} .cs-revela{opacity:0;transform:translateY(28px);transition:opacity 1s var(--curva),transform 1s var(--curva)} .cs-revela.visto{opacity:1;transform:none} .cs-esqueleto{animation:cs-late 1.6s ease-in-out infinite} @media (prefers-reduced-motion:reduce){.cs-entra,.cs-qr,.cs-grande,.cs-grande img{animation:none}.cs-revela{opacity:1;transform:none;transition:none}.cs-cap .barra i{transition:none;transform:scaleX(var(--p))}.cs-mv{transition:none}} `;var import_react4=__toESM(require("react")),import_lucide_react2=require("lucide-react");var import_react=__toESM(require("react")),MODEL_VIEWER="https://cdn.jsdelivr.net/npm/@google/model-viewer@4.0.0/dist/model-viewer.min.js",cargando=null;function cargarModelViewer(){return cargando||(cargando=new Promise((ok,mal)=>{if(customElements.get("model-viewer"))return ok();let s=document.createElement("script");s.type="module",s.src=MODEL_VIEWER,s.onerror=()=>mal(new Error("No se pudo cargar el visor 3D")),document.head.appendChild(s),customElements.whenDefined("model-viewer").then(()=>ok())})),cargando}var Visor=import_react.default.forwardRef(function({src,poster,alt,acabado,orbita,onAr,onFallo},ref){let el=import_react.default.useRef(null),originales=import_react.default.useRef(new Map),[listo,setListo]=import_react.default.useState(!1),[cargado,setCargado]=import_react.default.useState(!1);import_react.default.useEffect(()=>{cargarModelViewer().then(()=>setListo(!0),e=>onFallo(e.message))},[onFallo]);let pintar=import_react.default.useCallback(()=>{let mv=el.current;!mv||!mv.model||mv.model.materials.forEach((m,i)=>{if(originales.current.has(i)||originales.current.set(i,[...m.pbrMetallicRoughness.baseColorFactor]),m.name==="Vidrio"||m.name==="Suelo de estancia")return;let hex=acabado?acabado.colores[m.name]??acabado.resto:null;m.pbrMetallicRoughness.setBaseColorFactor(hex??originales.current.get(i))})},[acabado]);return import_react.default.useEffect(()=>{let mv=el.current;if(!mv)return;let alCargar=()=>{originales.current=new Map,pintar(),setCargado(!0),onAr(!!mv.canActivateAR)},alFallar=()=>onFallo("No se pudo abrir la casa en 3D");return mv.addEventListener("load",alCargar),mv.addEventListener("error",alFallar),()=>{mv.removeEventListener("load",alCargar),mv.removeEventListener("error",alFallar)}},[listo,pintar,onAr,onFallo]),import_react.default.useEffect(()=>{pintar()},[pintar]),import_react.default.useEffect(()=>{setCargado(!1)},[src]),import_react.default.useImperativeHandle(ref,()=>({ar:()=>el.current?.activateAR()}),[]),__gh(__gf,null,listo&&import_react.default.createElement("model-viewer",{ref:el,src,poster:poster??void 0,alt,class:`cs-mv${cargado?"":" cambiando"}`,"camera-controls":"","touch-action":"pan-y","auto-rotate":"","rotation-per-second":"7deg","auto-rotate-delay":"3000","interaction-prompt":"none","camera-orbit":orbita,"max-camera-orbit":"auto 86deg auto","field-of-view":"28deg","interpolation-decay":"120","shadow-intensity":"1","shadow-softness":"0.85",exposure:"1.05","environment-image":"neutral",ar:"","ar-modes":"webxr scene-viewer quick-look","ar-scale":"auto"}),!cargado&&__gh("span",{className:"cargando cs-esqueleto","data-gufi-src":"sections/Visor.tsx:81"},"Preparando la casa"))});var import_react2=__toESM(require("react")),import_react_dom=require("react-dom"),import_lucide_react=require("lucide-react");var DOS=new Intl.NumberFormat("es-ES",{minimumFractionDigits:2,maximumFractionDigits:2}),UNO=new Intl.NumberFormat("es-ES",{maximumFractionDigits:1}),CERO=new Intl.NumberFormat("es-ES",{maximumFractionDigits:0}),euros=n=>`${DOS.format(n)}\xA0\u20AC`,eurosRedondos=n=>`${CERO.format(n)}\xA0\u20AC`,m2=n=>`${UNO.format(n??0)}\xA0m\xB2`,entero=n=>CERO.format(n);var CDN="https://cdn.jsdelivr.net/npm/three@0.186.1",URL_THREE=`${CDN}/+esm`,URL_GLTF=`${CDN}/examples/jsm/loaders/GLTFLoader.js/+esm`,URL_SALA=`${CDN}/examples/jsm/environments/RoomEnvironment.js/+esm`,URL_POST=["EffectComposer","RenderPass","GTAOPass","OutputPass"].map(n=>`${CDN}/examples/jsm/postprocessing/${n}.js/+esm`),OJOS=1.6,VELOCIDAD=2.2,DISTANCIA_A_PARED=.35,libs=null;function librerias(){return libs??=Promise.all([URL_THREE,URL_GLTF,URL_SALA,...URL_POST].map(u=>import(u))).then(([THREE,g,s,c,r,ao,o])=>({THREE,GLTFLoader:g.GLTFLoader,RoomEnvironment:s.RoomEnvironment,post:{EffectComposer:c.EffectComposer,RenderPass:r.RenderPass,GTAOPass:ao.GTAOPass,OutputPass:o.OutputPass}})).catch(e=>{throw libs=null,new Error(`No se pudo cargar el recorrido (three.js): ${e instanceof Error?e.message:String(e)}`)}),libs}var suave=t=>t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2;function primera(paradas){let i=paradas.findIndex(p=>/entrada|recibidor|vest[iĆ­]bulo|hall|foyer|acceso/i.test(p.nombre));if(i>=0)return i;let abajo=paradas.filter(p=>p.planta===paradas[0].planta),mayor=abajo.reduce((a,b)=>(b.superficie??0)>(a.superficie??0)?b:a,abajo[0]);return paradas.indexOf(mayor)}var fechaCorta=iso=>new Date(iso).toLocaleDateString("es-ES",{day:"numeric",month:"short"}),CLAVE_NOMBRE="gufi-casa-nombre";function Recorrido({glb,paradas,acabado,titulo,onCerrar,gufi,codigo,notas,autor,estudio,notaInicial}){let caja=import_react2.default.useRef(null),mando=import_react2.default.useRef(null),[lista,setLista]=import_react2.default.useState(notas),[anotando,setAnotando]=import_react2.default.useState(!1),[borrador,setBorrador]=import_react2.default.useState(null),[abierta,setAbierta]=import_react2.default.useState(notaInicial),[texto,setTexto]=import_react2.default.useState(""),[nombre,setNombre]=import_react2.default.useState(()=>window.localStorage.getItem(CLAVE_NOMBRE)??autor??""),[nombreGuardado,setNombreGuardado]=import_react2.default.useState(()=>!!window.localStorage.getItem(CLAVE_NOMBRE)),[enviando,setEnviando]=import_react2.default.useState(!1),[errorNota,setErrorNota]=import_react2.default.useState(""),anotandoRef=import_react2.default.useRef(!1);anotandoRef.current=anotando;let chinchetas=import_react2.default.useRef(new Map),[carga,setCarga]=import_react2.default.useState(0),[fallo,setFallo]=import_react2.default.useState(""),[aqui,setAqui]=import_react2.default.useState(null),[auto,setAuto]=import_react2.default.useState(!1),[pista,setPista]=import_react2.default.useState(!0),plantas=[...new Set(paradas.map(p=>p.planta))],[planta,setPlanta]=import_react2.default.useState(paradas[0]?.planta??""),tactil=window.matchMedia("(pointer: coarse)").matches;import_react2.default.useEffect(()=>{let f=e=>{if(e.key!=="Escape")return;let campo=e.target?.closest?.("input, textarea");campo?campo.blur():onCerrar()};window.addEventListener("keydown",f);let antes=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",f),document.body.style.overflow=antes}},[onCerrar]),import_react2.default.useEffect(()=>{let t=setTimeout(()=>setPista(!1),5e3);return()=>clearTimeout(t)},[]),import_react2.default.useEffect(()=>{let el=caja.current;if(!el)return;let vivo=!0,raf=0,limpiar=[];return(async()=>{let{THREE,GLTFLoader,RoomEnvironment,post}=await librerias();if(!vivo)return;let renderer=new THREE.WebGLRenderer({antialias:!0});renderer.setPixelRatio(Math.min(window.devicePixelRatio,2)),renderer.setSize(el.clientWidth,el.clientHeight),renderer.outputColorSpace=THREE.SRGBColorSpace,renderer.toneMapping=THREE.ACESFilmicToneMapping,renderer.toneMappingExposure=1,renderer.shadowMap.enabled=!0,renderer.shadowMap.type=THREE.PCFShadowMap,el.appendChild(renderer.domElement),renderer.domElement.style.display="block",renderer.domElement.style.touchAction="none",limpiar.push(()=>{renderer.dispose(),renderer.domElement.remove()});let escena=new THREE.Scene,lienzoCielo=document.createElement("canvas");lienzoCielo.width=4,lienzoCielo.height=256;let gc=lienzoCielo.getContext("2d"),gr=gc.createLinearGradient(0,0,0,256);gr.addColorStop(0,"#8fb6dc"),gr.addColorStop(.55,"#e9f0f5"),gr.addColorStop(1,"#d8d3ca"),gc.fillStyle=gr,gc.fillRect(0,0,4,256);let cielo=new THREE.CanvasTexture(lienzoCielo);cielo.colorSpace=THREE.SRGBColorSpace,escena.background=cielo;let pmrem=new THREE.PMREMGenerator(renderer);escena.environment=pmrem.fromScene(new RoomEnvironment,.04).texture,escena.environmentIntensity=.5,escena.add(new THREE.HemisphereLight(16777215,13616824,.25));let sol=new THREE.DirectionalLight(16773336,2.4);sol.castShadow=!0,sol.shadow.mapSize.set(tactil?2048:4096,tactil?2048:4096),sol.shadow.bias=-4e-4,sol.shadow.normalBias=.03,escena.add(sol,sol.target);let camara=new THREE.PerspectiveCamera(tactil?78:70,el.clientWidth/el.clientHeight,.05,600);camara.rotation.order="YXZ";let gltf=await new GLTFLoader().loadAsync(glb,e=>{vivo&&e.total&&setCarga(e.loaded/e.total)});if(!vivo)return;let solidos=[],aristas=new THREE.LineBasicMaterial({color:2894894,transparent:!0,opacity:.38}),mallas=[];gltf.scene.traverse(o=>{o.isMesh&&mallas.push(o)});let triangulos=mallas.reduce((t,o)=>t+(o.geometry.index?o.geometry.index.count:o.geometry.attributes.position.count)/3,0);for(let o of mallas){let m=o.material;if(m.side=THREE.DoubleSide,m.name==="Puerta"){m.transparent=!0,m.opacity=.3,m.depthWrite=!1;continue}if(m.name==="Vidrio"||(o.receiveShadow=!0,solidos.push(o),m.name==="Suelo de estancia"))continue;o.castShadow=!0,m.polygonOffset=!0,m.polygonOffsetFactor=1,m.polygonOffsetUnits=1;let hex=acabado?acabado.colores[m.name]??acabado.resto:null;hex&&m.color.set(hex),triangulos<6e5&&o.add(new THREE.LineSegments(new THREE.EdgesGeometry(o.geometry,30),aristas))}escena.add(gltf.scene);let cajaCasa=new THREE.Box3().setFromObject(gltf.scene),centro=cajaCasa.getCenter(new THREE.Vector3),radio=cajaCasa.getSize(new THREE.Vector3).length()/2;sol.target.position.copy(centro),sol.position.copy(centro).add(new THREE.Vector3(.55,.6,.45).normalize().multiplyScalar(radio*2)),Object.assign(sol.shadow.camera,{left:-radio,right:radio,top:radio,bottom:-radio,near:.1,far:radio*4}),sol.shadow.camera.updateProjectionMatrix();let aro=new THREE.Mesh(new THREE.RingGeometry(.22,.3,40),new THREE.MeshBasicMaterial({color:16777215,transparent:!0,opacity:.9,depthTest:!1}));aro.rotation.x=-Math.PI/2,aro.renderOrder=10,aro.visible=!1,escena.add(aro);let giro=0,cabeceo=-.08,pos=new THREE.Vector3,viaje=null,paseo=null,apuntar=i=>{let p=paradas[i].punto;return new THREE.Vector3(p.x,p.y+OJOS,p.z)},enCual=null,rayo=new THREE.Raycaster,libre=(desde,dir,hasta)=>(rayo.set(desde,dir),rayo.far=hasta,rayo.intersectObjects(solidos,!1).length===0),mejorGiro=desde=>{let mejor=0,lejos=-1;for(let k=0;k<16;k++){let g=k/16*Math.PI*2;rayo.set(desde,new THREE.Vector3(-Math.sin(g),0,-Math.cos(g))),rayo.far=40;let h=rayo.intersectObjects(solidos,!1)[0],d=h?h.distance:40;d>lejos&&(lejos=d,mejor=g)}return mejor},ir=(i,conPaseo=!1)=>{conPaseo||(paseo=null,setAuto(!1));let a=apuntar(i),otraAltura=Math.abs(a.y-pos.y)>1.2,d=pos.distanceTo(a),llegada=mejorGiro(a);viaje={de:pos.clone(),a,giroDe:giro,giroA:llegada,t0:performance.now(),dura:otraAltura?900:Math.min(2600,Math.max(700,d*420)),fundido:otraAltura},setPlanta(paradas[i].planta)};mando.current={ir:i=>ir(i),verNota:v=>{paseo=null,setAuto(!1);let a=new THREE.Vector3(v.x,v.y,v.z),otraAltura=Math.abs(a.y-pos.y)>1.2;viaje={de:pos.clone(),a,giroDe:giro,giroA:v.giro,cabeceoDe:cabeceo,cabeceoA:v.cabeceo,t0:performance.now(),dura:otraAltura?900:Math.min(2400,Math.max(700,pos.distanceTo(a)*420)),fundido:otraAltura}},auto:si=>{if(setAuto(si),!si){paseo=null;return}let desde=enCual??primera(paradas);paseo={i:desde,fase:"ir",t0:performance.now()},ir(desde,!0)}};let inicio=primera(paradas);pos.copy(apuntar(inicio)),giro=mejorGiro(pos);let deEntrada=notaInicial!=null?notas.find(n=>n.id===notaInicial):void 0;deEntrada&&(pos.set(deEntrada.vista.x,deEntrada.vista.y,deEntrada.vista.z),giro=deEntrada.vista.giro,cabeceo=deEntrada.vista.cabeceo),setPlanta(paradas[inicio].planta),setCarga(null);let abajo=null,puntero=new THREE.Vector2,sobre=e=>{let r=renderer.domElement.getBoundingClientRect();return puntero.set((e.clientX-r.left)/r.width*2-1,-((e.clientY-r.top)/r.height)*2+1),rayo.setFromCamera(puntero,camara),rayo.far=40,rayo.intersectObjects(solidos,!1)[0]??null},esSuelo=h=>h&&h.face&&h.face.normal.clone().transformDirection(h.object.matrixWorld).y>.6&&Math.abs(h.point.y+OJOS-pos.y)<1.4,alBajar=e=>{abajo={x:e.clientX,y:e.clientY,giro,cabeceo,movido:!1},renderer.domElement.setPointerCapture(e.pointerId),paseo=null,setAuto(!1)},alMover=e=>{if(abajo){let dx=e.clientX-abajo.x,dy=e.clientY-abajo.y;Math.abs(dx)+Math.abs(dy)>6&&(abajo.movido=!0),giro=abajo.giro+dx*.0042,cabeceo=Math.max(-1.25,Math.min(1.1,abajo.cabeceo+dy*.0036));return}if(e.pointerType!=="mouse")return;let h=sobre(e);aro.visible=!!esSuelo(h),aro.visible&&aro.position.copy(h.point).add(new THREE.Vector3(0,.02,0))},alSoltar=e=>{let fue=abajo;if(abajo=null,!fue||fue.movido)return;let h=sobre(e);if(anotandoRef.current){if(!h)return;let r3=n=>Math.round(n*1e3)/1e3,est=enCual!=null?paradas[enCual]:null;setBorrador({punto:{x:r3(h.point.x),y:r3(h.point.y),z:r3(h.point.z)},vista:{x:r3(pos.x),y:r3(pos.y),z:r3(pos.z),giro:r3(giro),cabeceo:r3(cabeceo)},estancia:est?est.nombre:null,planta:est?est.planta:null}),setAnotando(!1);return}if(esSuelo(h)){let a=new THREE.Vector3(h.point.x,h.point.y+OJOS,h.point.z),d=pos.distanceTo(a);viaje={de:pos.clone(),a,giroDe:giro,giroA:giro,t0:performance.now(),dura:Math.min(2200,Math.max(500,d*380))},aro.position.copy(h.point).add(new THREE.Vector3(0,.02,0)),aro.visible=!0}},c=renderer.domElement;c.addEventListener("pointerdown",alBajar),c.addEventListener("pointermove",alMover),c.addEventListener("pointerup",alSoltar),c.addEventListener("pointerleave",()=>{aro.visible=!1}),limpiar.push(()=>{c.removeEventListener("pointerdown",alBajar),c.removeEventListener("pointermove",alMover),c.removeEventListener("pointerup",alSoltar)});let teclas=new Set,escribiendo=e=>!!e.target?.closest?.("input, textarea"),alPulsar=e=>{!escribiendo(e)&&/^(Arrow|Key[WASD])/.test(e.code)&&(teclas.add(e.code),e.preventDefault(),paseo=null,setAuto(!1),viaje=null)},alLevantar=e=>teclas.delete(e.code);window.addEventListener("keydown",alPulsar),window.addEventListener("keyup",alLevantar),limpiar.push(()=>{window.removeEventListener("keydown",alPulsar),window.removeEventListener("keyup",alLevantar)});let componer=null;if(!tactil){componer=new post.EffectComposer(renderer),componer.addPass(new post.RenderPass(escena,camara));let ao=new post.GTAOPass(escena,camara,el.clientWidth,el.clientHeight);ao.updateGtaoMaterial({radius:.4,distanceExponent:1,thickness:1,scale:1,samples:24}),ao.updatePdMaterial({lumaPhi:10,depthPhi:2,normalPhi:3,radius:7,rings:2,samples:16}),ao.blendIntensity=.9,componer.addPass(ao),componer.addPass(new post.OutputPass),limpiar.push(()=>componer.dispose())}let ajustar=()=>{renderer.setSize(el.clientWidth,el.clientHeight),componer&&componer.setSize(el.clientWidth,el.clientHeight),camara.aspect=el.clientWidth/el.clientHeight,camara.updateProjectionMatrix()},ro=new ResizeObserver(ajustar);ro.observe(el),limpiar.push(()=>ro.disconnect());let antes=performance.now(),cuadro=0,tapadas=new Map,vela=el.parentElement?.querySelector(".cs-rc-velo"),bucle=ahora=>{raf=requestAnimationFrame(bucle);let dt=Math.min(.05,(ahora-antes)/1e3);if(antes=ahora,viaje){let t=Math.min(1,(ahora-viaje.t0)/viaje.dura),k=suave(t);if(viaje.fundido)vela&&(vela.style.opacity=String(1-Math.abs(t-.5)*2)),t>=.5&&(pos.copy(viaje.a),giro=viaje.giroA,viaje.cabeceoA!=null&&(cabeceo=viaje.cabeceoA));else{pos.lerpVectors(viaje.de,viaje.a,k);let dg=viaje.giroA-viaje.giroDe;dg=Math.atan2(Math.sin(dg),Math.cos(dg)),giro=viaje.giroDe+dg*Math.min(1,k*1.6),viaje.cabeceoA!=null&&viaje.cabeceoDe!=null&&(cabeceo=viaje.cabeceoDe+(viaje.cabeceoA-viaje.cabeceoDe)*k)}t>=1&&(viaje=null,vela&&(vela.style.opacity="0"),paseo&&(paseo.fase="mirar",paseo.t0=ahora))}else paseo&&paseo.fase==="mirar"&&(giro+=dt*.42,ahora-paseo.t0>4200&&(paseo.i=(paseo.i+1)%paradas.length,paseo.fase="ir",ir(paseo.i,!0)));if(teclas.size){let delante=(teclas.has("ArrowUp")||teclas.has("KeyW")?1:0)-(teclas.has("ArrowDown")||teclas.has("KeyS")?1:0),lado=(teclas.has("KeyD")?1:0)-(teclas.has("KeyA")?1:0);if(giro+=((teclas.has("ArrowLeft")?1:0)-(teclas.has("ArrowRight")?1:0))*dt*1.6,delante||lado){let dir=new THREE.Vector3(-Math.sin(giro)*delante+Math.cos(giro)*lado,0,-Math.cos(giro)*delante-Math.sin(giro)*lado).normalize(),paso=VELOCIDAD*dt,rodillas=pos.clone().add(new THREE.Vector3(0,-1.1,0));libre(pos,dir,paso+DISTANCIA_A_PARED)&&libre(rodillas,dir,paso+DISTANCIA_A_PARED)&&pos.addScaledVector(dir,paso)}}camara.position.copy(pos),camara.rotation.set(cabeceo,giro,0),componer?componer.render():renderer.render(escena,camara),cuadro++;let w=el.clientWidth,hh=el.clientHeight;for(let[k,c2]of chinchetas.current){let v=new THREE.Vector3(c2.punto.x,c2.punto.y,c2.punto.z),p=v.clone().project(camara),ve=p.z<1&&Math.abs(p.x)<=1.05&&Math.abs(p.y)<=1.05;if(ve&&cuadro%6===0){let dir=v.clone().sub(camara.position),lejos=dir.length();rayo.set(camara.position,dir.normalize()),rayo.far=Math.max(0,lejos-.12),tapadas.set(k,rayo.intersectObjects(solidos,!1).length>0)}tapadas.get(k)&&(ve=!1),c2.el.style.opacity=ve?"1":"0",c2.el.style.pointerEvents=ve?"auto":"none",c2.el.style.transform=`translate(${(p.x+1)/2*w}px, ${(1-p.y)/2*hh}px)`}let cual=paradas.findIndex(p=>Math.abs(pos.x-p.punto.x)<=p.punto.ancho/2&&Math.abs(pos.z-p.punto.z)<=p.punto.fondo/2&&Math.abs(pos.y-OJOS-p.punto.y)<1.2),nueva=cual>=0?cual:null;nueva!==enCual&&(enCual=nueva,setAqui(nueva),nueva!=null&&setPlanta(paradas[nueva].planta))};raf=requestAnimationFrame(bucle)})().catch(e=>{vivo&&setFallo(e instanceof Error?e.message:String(e))}),()=>{vivo=!1,cancelAnimationFrame(raf);for(let f of limpiar)f();mando.current=null}},[glb,paradas,acabado,tactil]);let actual=aqui!=null?paradas[aqui]:null,dePlanta=paradas.map((p,i)=>({p,i})).filter(x=>x.p.planta===planta),notaAbierta=abierta!=null?lista.find(n=>n.id===abierta)??null:null,chincheta=(k,punto)=>el=>{el?chinchetas.current.set(k,{el,punto}):chinchetas.current.delete(k)};async function enviar(){if(!(!borrador||!texto.trim()||!nombre.trim())){setEnviando(!0),setErrorNota("");try{let r=await gufi.publicAutomation("arquitectura_cliente").run({codigo,op:"nota",texto:texto.trim(),autor:nombre.trim(),...borrador});if(!r.ok)throw new Error(r.mensaje??"No se ha podido enviar");window.localStorage.setItem(CLAVE_NOMBRE,nombre.trim()),setNombreGuardado(!0),setLista(l=>[...l,r.nota]),setBorrador(null),setTexto(""),setAbierta(r.nota.id)}catch(e){setErrorNota(e instanceof Error?e.message:String(e))}finally{setEnviando(!1)}}}let hoja=!!(borrador||notaAbierta);return(0,import_react_dom.createPortal)(__gh("div",{className:"cs-rc",role:"dialog","aria-label":`Recorrido por ${titulo}`,"data-gufi-src":"sections/Recorrido.tsx:484"},__gh("div",{ref:caja,className:"cs-rc-lienzo","data-gufi-src":"sections/Recorrido.tsx:485"}),__gh("div",{className:"cs-rc-velo","data-gufi-src":"sections/Recorrido.tsx:486"}),carga!=null&&!fallo&&__gh("div",{className:"cs-rc-carga","data-gufi-src":"sections/Recorrido.tsx:488"},__gh("b",{"data-gufi-src":"sections/Recorrido.tsx:488"},"Entrando en la casa"),__gh("span",{className:"barra","data-gufi-src":"sections/Recorrido.tsx:488"},__gh("i",{style:{transform:`scaleX(${carga})`},"data-gufi-src":"sections/Recorrido.tsx:488"}))),fallo&&__gh("div",{className:"cs-rc-carga","data-gufi-src":"sections/Recorrido.tsx:490"},__gh("b",{"data-gufi-src":"sections/Recorrido.tsx:490"},fallo)),__gh("div",{className:"cs-rc-arriba","data-gufi-src":"sections/Recorrido.tsx:491"},__gh("button",{type:"button",className:"cs-rc-boton",onClick:onCerrar,"aria-label":"Salir del recorrido","data-gufi-src":"sections/Recorrido.tsx:492"},__gh(import_lucide_react.X,{size:18,strokeWidth:2.2})),__gh("div",{className:"cs-rc-donde",key:actual?.nombre??"-","data-gufi-src":"sections/Recorrido.tsx:493"},__gh("b",{"data-gufi-src":"sections/Recorrido.tsx:494"},actual?actual.nombre:titulo),__gh("span",{"data-gufi-src":"sections/Recorrido.tsx:495"},actual?[actual.planta,actual.superficie!=null&&m2(actual.superficie),actual.suelo&&`${actual.suelo.nombre}${actual.suelo.marca?`, ${actual.suelo.marca}`:""}`].filter(Boolean).join(" \xB7 "):"Por dentro")),__gh("button",{type:"button",className:"cs-rc-boton ancho",onClick:()=>{setBorrador(null),setAbierta(null),setAnotando(x=>!x)},"aria-pressed":anotando,"data-gufi-src":"sections/Recorrido.tsx:497"},__gh(import_lucide_react.MessageCirclePlus,{size:16,strokeWidth:2.2}),__gh("span",{"data-gufi-src":"sections/Recorrido.tsx:498"},"Nota")),__gh("button",{type:"button",className:"cs-rc-boton ancho",onClick:()=>mando.current?.auto(!auto),"aria-pressed":auto,"data-gufi-src":"sections/Recorrido.tsx:500"},auto?__gh(import_lucide_react.Pause,{size:16,strokeWidth:2.2}):__gh(import_lucide_react.Play,{size:16,strokeWidth:2.2}),__gh("span",{"data-gufi-src":"sections/Recorrido.tsx:501"},auto?"Parar":"Recorrido"))),__gh("div",{className:"cs-rc-pines","aria-label":"Notas","data-gufi-src":"sections/Recorrido.tsx:504"},lista.map((n,i)=>__gh("button",{key:n.id,ref:chincheta(String(n.id),n.punto),type:"button",className:`cs-rc-pin${n.respuesta?" respondida":""}${n.estado==="Resuelta"?" resuelta":""}${abierta===n.id?" elegida":""}`,onClick:()=>{setBorrador(null),setAbierta(n.id),mando.current?.verNota(n.vista)},"aria-label":`Nota ${i+1}: ${n.texto}`,"data-gufi-src":"sections/Recorrido.tsx:506"},i+1)),borrador&&__gh("span",{ref:chincheta("nueva",borrador.punto),className:"cs-rc-pin nueva","data-gufi-src":"sections/Recorrido.tsx:509"},lista.length+1)),anotando&&__gh("div",{className:"cs-rc-pista","data-gufi-src":"sections/Recorrido.tsx:511"},tactil?"Toca donde quieras dejar la nota":"Haz clic donde quieras dejar la nota"),pista&&!anotando&&carga==null&&__gh("div",{className:"cs-rc-pista","data-gufi-src":"sections/Recorrido.tsx:512"},tactil?"Arrastra para mirar \xB7 toca el suelo para ir":"Arrastra para mirar \xB7 haz clic en el suelo o usa las flechas"),__gh("div",{className:"cs-rc-abajo","data-gufi-src":"sections/Recorrido.tsx:513"},borrador&&__gh("div",{className:"cs-rc-hoja","data-gufi-src":"sections/Recorrido.tsx:515"},__gh("b",{"data-gufi-src":"sections/Recorrido.tsx:516"},"Tu nota"),__gh("span",{className:"sub","data-gufi-src":"sections/Recorrido.tsx:517"},`${borrador.estancia?`${borrador.estancia}. `:""}Le llega a ${estudio} con lo que est\xE1s viendo.`),__gh("textarea",{autoFocus:!0,rows:3,value:texto,onChange:e=>setTexto(e.target.value),placeholder:"\xBFQu\xE9 te gustar\xEDa cambiar aqu\xED?",maxLength:1e3,"data-gufi-src":"sections/Recorrido.tsx:518"}),nombreGuardado?__gh("span",{className:"de","data-gufi-src":"sections/Recorrido.tsx:520"},`De parte de ${nombre}`,__gh("button",{type:"button",onClick:()=>setNombreGuardado(!1),"data-gufi-src":"sections/Recorrido.tsx:520"},"Cambiar")):__gh("label",{className:"campo","data-gufi-src":"sections/Recorrido.tsx:522"},__gh("span",{"data-gufi-src":"sections/Recorrido.tsx:523"},"\xBFDe parte de qui\xE9n?"),__gh("input",{value:nombre,onChange:e=>setNombre(e.target.value),placeholder:"Tu nombre",maxLength:80,"data-gufi-src":"sections/Recorrido.tsx:524"}),__gh("small",{"data-gufi-src":"sections/Recorrido.tsx:525"},`Para que ${estudio} sepa de qui\xE9n es. Lo recordamos para la pr\xF3xima.`)),errorNota&&__gh("span",{className:"error","data-gufi-src":"sections/Recorrido.tsx:528"},errorNota),__gh("div",{className:"botones","data-gufi-src":"sections/Recorrido.tsx:529"},__gh("button",{type:"button",className:"secundario",onClick:()=>{setBorrador(null),setTexto("")},"data-gufi-src":"sections/Recorrido.tsx:530"},"Cancelar"),__gh("button",{type:"button",className:"principal",disabled:!texto.trim()||!nombre.trim()||enviando,onClick:()=>{enviar()},"data-gufi-src":"sections/Recorrido.tsx:531"},enviando?"Enviando":`Enviar a ${estudio}`))),!borrador&¬aAbierta&&__gh("div",{className:"cs-rc-hoja","data-gufi-src":"sections/Recorrido.tsx:536"},__gh("div",{className:"cabeza","data-gufi-src":"sections/Recorrido.tsx:537"},__gh("span",{className:"sub","data-gufi-src":"sections/Recorrido.tsx:538"},[notaAbierta.autor?`De ${notaAbierta.autor}`:null,notaAbierta.estancia,fechaCorta(notaAbierta.fecha),notaAbierta.estado==="Resuelta"?"resuelta":null].filter(Boolean).join(" \xB7 ")),__gh("button",{type:"button",className:"cerrar",onClick:()=>setAbierta(null),"aria-label":"Cerrar la nota","data-gufi-src":"sections/Recorrido.tsx:539"},__gh(import_lucide_react.X,{size:16,strokeWidth:2.2}))),__gh("p",{className:"texto","data-gufi-src":"sections/Recorrido.tsx:541"},notaAbierta.texto),notaAbierta.respuesta?__gh("div",{className:"respuesta","data-gufi-src":"sections/Recorrido.tsx:543"},__gh("b",{"data-gufi-src":"sections/Recorrido.tsx:543"},estudio),__gh("p",{"data-gufi-src":"sections/Recorrido.tsx:543"},notaAbierta.respuesta)):__gh("span",{className:"sub","data-gufi-src":"sections/Recorrido.tsx:544"},`${estudio} a\xFAn no ha respondido.`)),!hoja&&__gh("div",{className:"cs-rc-panel","data-gufi-src":"sections/Recorrido.tsx:548"},plantas.length>1&&__gh("div",{className:"cs-seg",role:"group","aria-label":"Planta","data-gufi-src":"sections/Recorrido.tsx:550"},plantas.map(p=>__gh("button",{key:p,type:"button","aria-pressed":p===planta,onClick:()=>setPlanta(p),"data-gufi-src":"sections/Recorrido.tsx:551"},p))),__gh("div",{className:"cs-rc-estancias","data-gufi-src":"sections/Recorrido.tsx:554"},dePlanta.map(({p,i})=>__gh("button",{key:i,type:"button",className:"cs-rc-estancia","aria-pressed":aqui===i,onClick:()=>mando.current?.ir(i),"data-gufi-src":"sections/Recorrido.tsx:556"},p.suelo?.color&&__gh("i",{style:{background:p.suelo.color},"data-gufi-src":"sections/Recorrido.tsx:557"}),__gh("span",{"data-gufi-src":"sections/Recorrido.tsx:558"},p.nombre),p.superficie!=null&&__gh("small",{"data-gufi-src":"sections/Recorrido.tsx:559"},m2(p.superficie)))))))),document.body)}var import_react3=__toESM(require("react"));function Revela({children,className="",retraso=0,as="div",id}){let ref=import_react3.default.useRef(null),[visto,setVisto]=import_react3.default.useState(!1);return import_react3.default.useEffect(()=>{let el=ref.current;if(!el)return;let io=new IntersectionObserver(entradas=>{entradas.some(e=>e.isIntersecting)&&(setVisto(!0),io.disconnect())},{rootMargin:"0px 0px -12% 0px"});return io.observe(el),()=>io.disconnect()},[]),import_react3.default.createElement(as,{ref,id,className:`cs-revela${visto?" visto":""} ${className}`,style:{transitionDelay:`${retraso}ms`}},children)}function Cuenta({valor,formato}){let ref=import_react3.default.useRef(null),[n,setN]=import_react3.default.useState(0);return import_react3.default.useEffect(()=>{let el=ref.current;if(!el)return;if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){setN(valor);return}let raf=0,io=new IntersectionObserver(entradas=>{if(!entradas.some(e=>e.isIntersecting))return;io.disconnect();let t0=performance.now(),paso=t=>{let x=Math.min(1,(t-t0)/1400);setN(valor*(1-Math.pow(1-x,3))),x<1&&(raf=requestAnimationFrame(paso))};raf=requestAnimationFrame(paso)});return io.observe(el),()=>{io.disconnect(),cancelAnimationFrame(raf)}},[valor]),__gh("span",{ref,className:"cs-num","data-gufi-src":"sections/comun.tsx:44"},formato(n))}function Marca({estudio}){return estudio.logo?__gh("img",{src:estudio.logo,alt:estudio.nombre,"data-gufi-src":"sections/comun.tsx:49"}):__gh("span",{className:"marca","data-gufi-src":"sections/comun.tsx:49"},estudio.nombre)}function Aviso({estudio,titulo,texto}){return __gh("div",{className:"cs-aviso","data-gufi-src":"sections/comun.tsx:55"},__gh("div",{className:"cs-entra","data-gufi-src":"sections/comun.tsx:56"},estudio&&__gh(Marca,{estudio}),__gh("h1",{"data-gufi-src":"sections/comun.tsx:58"},titulo),__gh("p",{"data-gufi-src":"sections/comun.tsx:59"},texto)))}var ENTERA="__entera__",ANTE={"Estado reformado":"As\xED quedar\xE1","Estado actual":"As\xED est\xE1 hoy"},UNO2=new Intl.NumberFormat("es-ES",{maximumFractionDigits:1});function Casa({gufi,codigo}){let[r,setR]=import_react4.default.useState(null),[fallo,setFallo]=import_react4.default.useState("");return import_react4.default.useEffect(()=>{let vivo=!0;return gufi.publicAutomation("arquitectura_cliente").run({codigo}).then(x=>{vivo&&setR(x)}).catch(e=>{vivo&&setFallo(e instanceof Error?e.message:String(e))}),()=>{vivo=!1}},[gufi,codigo]),fallo?__gh(Aviso,{estudio:null,titulo:"No se ha podido abrir",texto:`Vuelve a intentarlo en un momento. ${fallo}`}):r?"motivo"in r?r.motivo==="cerrado"?__gh(Aviso,{estudio:r.estudio,titulo:"Este enlace ya no est\xE1 abierto",texto:"El estudio lo ha cerrado. Si lo necesitas, p\xEDdeles que lo vuelvan a abrir."}):__gh(Aviso,{estudio:r.estudio,titulo:"Este enlace no existe",texto:"Revisa que est\xE9 entero o pide al estudio que te lo vuelva a mandar."}):__gh(Pagina,{d:r,gufi,codigo}):__gh("div",{className:"cs-aviso","data-gufi-src":"sections/Casa.tsx:27"},__gh("span",{className:"cs-esqueleto",style:{fontSize:15,color:"#86868b"},"data-gufi-src":"sections/Casa.tsx:27"},"Abriendo tu casa"))}function Pagina({d,gufi,codigo}){let[bajado,setBajado]=import_react4.default.useState(!1);import_react4.default.useEffect(()=>{let f=()=>setBajado(window.scrollY>24);return f(),window.addEventListener("scroll",f,{passive:!0}),()=>window.removeEventListener("scroll",f)},[]),import_react4.default.useEffect(()=>{document.title=`${d.proyecto} \xB7 ${d.estudio.nombre}`},[d]);let conPlanos=d.plantas.some(p=>p.plano),ir=id=>e=>{e.preventDefault(),document.getElementById(id)?.scrollIntoView({behavior:"smooth"})};return __gh(__gf,null,__gh("header",{className:`cs-cab${bajado?" bajado":""}`,"data-gufi-src":"sections/Casa.tsx:50"},__gh(Marca,{estudio:d.estudio}),__gh("span",{className:"titulo","data-gufi-src":"sections/Casa.tsx:52"},d.proyecto),__gh("nav",{"aria-label":"En esta p\xE1gina","data-gufi-src":"sections/Casa.tsx:53"},__gh("a",{href:"#casa",onClick:ir("casa"),"data-gufi-src":"sections/Casa.tsx:54"},"La casa"),conPlanos&&__gh("a",{href:"#planos",onClick:ir("planos"),"data-gufi-src":"sections/Casa.tsx:55"},"Planos"),d.materiales.length>0&&__gh("a",{href:"#materiales",onClick:ir("materiales"),"data-gufi-src":"sections/Casa.tsx:56"},"Materiales"),d.presupuesto&&__gh("a",{href:"#presupuesto",onClick:ir("presupuesto"),"data-gufi-src":"sections/Casa.tsx:57"},"Presupuesto"))),__gh(Hero,{d,gufi,codigo}),__gh(Cifras,{d}),conPlanos&&__gh(Planos,{plantas:d.plantas.filter(p=>p.plano)}),d.materiales.length>0&&__gh(Materiales,{d}),d.presupuesto&&__gh(Presupuesto,{p:d.presupuesto}),__gh("footer",{className:"cs-pie","data-gufi-src":"sections/Casa.tsx:65"},__gh(Revela,null,__gh(Marca,{estudio:d.estudio}),__gh("p",{"data-gufi-src":"sections/Casa.tsx:68"},`${d.cliente?`${d.cliente}, esta`:"Esta"} es la propuesta de ${d.estudio.nombre}. Si quieres cambiar algo, cu\xE9ntaselo: lo ver\xE1s aqu\xED mismo, en este enlace.`),__gh("small",{"data-gufi-src":"sections/Casa.tsx:69"},new Date().toLocaleDateString("es-ES",{day:"numeric",month:"long",year:"numeric"})))))}function Hero({d,gufi,codigo}){let visor=import_react4.default.useRef(null),[planta,setPlanta]=import_react4.default.useState(ENTERA),claves=Object.keys(d.acabados),[acabado,setAcabado]=import_react4.default.useState(d.acabado&&d.acabados[d.acabado]?d.acabado:claves[0]??null),[puedeAr,setPuedeAr]=import_react4.default.useState(!1),[qr,setQr]=import_react4.default.useState(!1),[fallo,setFallo]=import_react4.default.useState(""),conDentro=d.plantas.filter(p=>p.glb),paradas=import_react4.default.useMemo(()=>d.plantas.flatMap(p=>p.estancias.flatMap(s=>s.punto?[{nombre:s.nombre,planta:p.nombre,superficie:s.superficie,suelo:s.suelo,punto:s.punto}]:[])),[d]),notaInicial=Number(new URLSearchParams(window.location.search).get("nota"))||null,[recorriendo,setRecorriendo]=import_react4.default.useState(!!notaInicial&¶das.length>0),cerrarRecorrido=import_react4.default.useCallback(()=>setRecorriendo(!1),[]),elegida=conDentro.find(p=>p.nombre===planta)??null,src=elegida?elegida.glb:d.casa.glb,alAr=import_react4.default.useCallback(si=>setPuedeAr(si),[]),alFallo=import_react4.default.useCallback(t=>setFallo(t),[]),ac=acabado?d.acabados[acabado]:null,movil=window.matchMedia("(max-width: 760px)").matches,tactil=window.matchMedia("(pointer: coarse)").matches;return __gh("section",{className:"cs-hero",id:"casa","data-gufi-src":"sections/Casa.tsx:103"},__gh("div",{className:"cs-hero-texto","data-gufi-src":"sections/Casa.tsx:104"},__gh("p",{className:"cs-ante cs-entra","data-gufi-src":"sections/Casa.tsx:105"},(d.fase&&ANTE[d.fase])??"Tu proyecto"),__gh("h1",{className:"cs-entra",style:{animationDelay:"80ms"},"data-gufi-src":"sections/Casa.tsx:106"},d.proyecto),d.cliente&&__gh("p",{className:"sub cs-entra",style:{animationDelay:"160ms"},"data-gufi-src":"sections/Casa.tsx:107"},`Propuesta para ${d.cliente}`)),__gh("div",{className:"cs-escena cs-entra",style:{animationDelay:"240ms"},"data-gufi-src":"sections/Casa.tsx:109"},fallo?__gh("span",{className:"cargando","data-gufi-src":"sections/Casa.tsx:111"},fallo):__gh(Visor,{ref:visor,src,poster:elegida?null:d.casa.poster,alt:d.proyecto,acabado:ac,orbita:elegida?`20deg 24deg ${movil?100:70}%`:`30deg 68deg ${movil?108:80}%`,onAr:alAr,onFallo:alFallo}),__gh("span",{className:"cs-pista","data-gufi-src":"sections/Casa.tsx:113"},elegida?`${elegida.nombre}, por dentro. Arrastra para girarla`:"Arrastra para girarla \xB7 pellizca para acercarte")),__gh("div",{className:"cs-mandos cs-entra",style:{animationDelay:"360ms"},"data-gufi-src":"sections/Casa.tsx:115"},__gh("div",{className:"cs-barra","data-gufi-src":"sections/Casa.tsx:116"},conDentro.length>0&&__gh(__gf,null,__gh("div",{className:"cs-seg",role:"group","aria-label":"Qu\xE9 parte de la casa","data-gufi-src":"sections/Casa.tsx:119"},__gh("button",{type:"button","aria-pressed":!elegida,onClick:()=>setPlanta(ENTERA),"data-gufi-src":"sections/Casa.tsx:120"},"Entera"),conDentro.map(p=>__gh("button",{key:p.nombre,type:"button","aria-pressed":elegida?.nombre===p.nombre,onClick:()=>setPlanta(p.nombre),"data-gufi-src":"sections/Casa.tsx:121"},p.nombre))),__gh("span",{className:"cs-sep","data-gufi-src":"sections/Casa.tsx:123"})),claves.length>1&&__gh(__gf,null,__gh("div",{className:"cs-acab","data-gufi-src":"sections/Casa.tsx:128"},__gh("span",{className:"nombre","data-gufi-src":"sections/Casa.tsx:129"},"Acabado",__gh("br",{"data-gufi-src":"sections/Casa.tsx:129"}),__gh("b",{"data-gufi-src":"sections/Casa.tsx:129"},ac?.nombre??"Del modelo")),__gh("div",{className:"cs-muestras",role:"group","aria-label":"Acabados","data-gufi-src":"sections/Casa.tsx:130"},claves.map(k=>{let c=d.acabados[k].colores,a=c.Muro??d.acabados[k].resto??"#eee",b=c.Solado??c.Forjado??a,v=c.Ventana??c.Carpinter\u00EDa??b;return __gh("button",{key:k,type:"button",className:"cs-muestra","aria-pressed":k===acabado,"aria-label":d.acabados[k].nombre,title:d.acabados[k].nombre,onClick:()=>setAcabado(k),style:{background:`conic-gradient(from 210deg, ${a} 0 140deg, ${b} 140deg 260deg, ${v} 260deg 360deg)`},"data-gufi-src":"sections/Casa.tsx:134"})}))),__gh("span",{className:"cs-sep","data-gufi-src":"sections/Casa.tsx:139"})),paradas.length>0&&__gh("button",{type:"button",className:`cs-ar${puedeAr?" claro":""}`,onClick:()=>setRecorriendo(!0),"data-gufi-src":"sections/Casa.tsx:143"},__gh(import_lucide_react2.Footprints,{size:17,strokeWidth:2,"aria-hidden":!0}),"Recorrerla"),puedeAr?__gh("button",{type:"button",className:"cs-ar",onClick:()=>visor.current?.ar(),"data-gufi-src":"sections/Casa.tsx:146"},__gh(import_lucide_react2.Box,{size:17,strokeWidth:2,"aria-hidden":!0}),"Verla en tu casa"):d.qr&&!tactil?__gh("span",{style:{position:"relative"},"data-gufi-src":"sections/Casa.tsx:148"},__gh("button",{type:"button",className:"cs-ar",onClick:()=>setQr(x=>!x),"aria-expanded":qr,"data-gufi-src":"sections/Casa.tsx:149"},__gh(import_lucide_react2.Smartphone,{size:17,strokeWidth:2,"aria-hidden":!0}),"Verla en tu casa"),qr&&__gh("div",{className:"cs-qr",role:"dialog","aria-label":"\xC1brela en tu m\xF3vil","data-gufi-src":"sections/Casa.tsx:151"},__gh("b",{"data-gufi-src":"sections/Casa.tsx:152"},"\xC1brela en tu m\xF3vil"),__gh("img",{alt:"C\xF3digo QR de esta p\xE1gina",src:`data:image/svg+xml;charset=utf-8,${encodeURIComponent(d.qr)}`,"data-gufi-src":"sections/Casa.tsx:153"}),__gh("p",{"data-gufi-src":"sections/Casa.tsx:154"},"Escan\xE9alo con la c\xE1mara y apunta al suelo: tu casa aparece en tu sal\xF3n, a escala."))):null)),recorriendo&&__gh(Recorrido,{glb:d.casa.glb,paradas,acabado:ac,titulo:d.proyecto,onCerrar:cerrarRecorrido,gufi,codigo,notas:d.notas,autor:d.cliente,estudio:d.estudio.nombre,notaInicial}))}function Cifras({d}){let c=d.cifras,cifras=[{v:c.superficie,f:n=>UNO2.format(n),u:"m\xB2",t:"\xFAtiles"},{v:c.estancias,f:n=>entero(Math.round(n)),t:c.estancias===1?"estancia":"estancias"},{v:c.plantas,f:n=>entero(Math.round(n)),t:c.plantas===1?"planta":"plantas"},{v:c.huecos,f:n=>entero(Math.round(n)),t:"puertas y ventanas"}].filter(x=>x.v>0);return __gh("section",{className:"cs-parte","data-gufi-src":"sections/Casa.tsx:176"},__gh("div",{className:"cs-ancho","data-gufi-src":"sections/Casa.tsx:177"},__gh(Revela,null,__gh("p",{className:"cs-ojo","data-gufi-src":"sections/Casa.tsx:178"},"En cifras"),__gh("h2",{className:"cs-h2","data-gufi-src":"sections/Casa.tsx:178"},"Cada metro, medido del modelo.")),__gh("div",{className:"cs-cifras","data-gufi-src":"sections/Casa.tsx:179"},cifras.map((x,i)=>__gh(Revela,{key:x.t,className:"cs-cifra",retraso:i*90},__gh("b",{"data-gufi-src":"sections/Casa.tsx:182"},__gh(Cuenta,{valor:x.v,formato:x.f}),x.u&&__gh("small",{"data-gufi-src":"sections/Casa.tsx:182"},x.u)),__gh("span",{className:"que","data-gufi-src":"sections/Casa.tsx:183"},x.t))))))}function Planos({plantas}){let[i,setI]=import_react4.default.useState(0),[grande,setGrande]=import_react4.default.useState(!1),p=plantas[Math.min(i,plantas.length-1)];return import_react4.default.useEffect(()=>{if(!grande)return;let f=e=>{e.key==="Escape"&&setGrande(!1)};return window.addEventListener("keydown",f),()=>window.removeEventListener("keydown",f)},[grande]),__gh("section",{className:"cs-parte gris",id:"planos","data-gufi-src":"sections/Casa.tsx:203"},__gh("div",{className:"cs-ancho","data-gufi-src":"sections/Casa.tsx:204"},__gh(Revela,{className:"cs-plano-cab"},__gh("div",{"data-gufi-src":"sections/Casa.tsx:206"},__gh("p",{className:"cs-ojo","data-gufi-src":"sections/Casa.tsx:206"},"Los planos"),__gh("h2",{className:"cs-h2","data-gufi-src":"sections/Casa.tsx:206"},"Planta a planta.")),plantas.length>1&&__gh("div",{className:"cs-seg",role:"group","aria-label":"Planta","data-gufi-src":"sections/Casa.tsx:208"},plantas.map((x,k)=>__gh("button",{key:x.nombre,type:"button","aria-pressed":k===i,onClick:()=>setI(k),"data-gufi-src":"sections/Casa.tsx:209"},x.nombre)))),__gh(Revela,{className:"cs-plano",retraso:120},__gh("button",{type:"button",className:"cs-lamina",onClick:()=>setGrande(!0),"aria-label":`Ver el plano de ${p.nombre} en grande`,"data-gufi-src":"sections/Casa.tsx:214"},__gh("img",{key:p.plano,src:p.plano,alt:`Plano de ${p.nombre}`,style:{animation:"cs-funde .5s ease both"},"data-gufi-src":"sections/Casa.tsx:215"})),__gh("div",{className:"cs-estancias",key:p.nombre,style:{animation:"cs-funde .5s ease both"},"data-gufi-src":"sections/Casa.tsx:217"},p.estancias.map((s,k)=>__gh("div",{className:"cs-estancia",key:`${s.nombre}-${k}`,"data-gufi-src":"sections/Casa.tsx:219"},__gh("div",{className:"que","data-gufi-src":"sections/Casa.tsx:220"},__gh("b",{"data-gufi-src":"sections/Casa.tsx:221"},s.nombre),s.suelo&&__gh("span",{"data-gufi-src":"sections/Casa.tsx:222"},__gh("i",{className:"cs-punto",style:{background:s.suelo.color??"#fff"},"data-gufi-src":"sections/Casa.tsx:222"}),`${s.suelo.nombre}${s.suelo.marca?`, ${s.suelo.marca}`:""}`)),__gh("span",{className:"cuanto cs-num","data-gufi-src":"sections/Casa.tsx:224"},m2(s.superficie)))),__gh("div",{className:"cs-total","data-gufi-src":"sections/Casa.tsx:227"},__gh("span",{"data-gufi-src":"sections/Casa.tsx:227"},p.nombre),__gh("span",{className:"cs-num","data-gufi-src":"sections/Casa.tsx:227"},m2(p.superficie)))))),grande&&__gh("div",{className:"cs-grande",onClick:()=>setGrande(!1),role:"dialog","aria-label":`Plano de ${p.nombre}`,"data-gufi-src":"sections/Casa.tsx:232"},__gh("img",{src:p.plano,alt:`Plano de ${p.nombre}`,"data-gufi-src":"sections/Casa.tsx:233"}),__gh("button",{type:"button",className:"cs-cerrar","aria-label":"Cerrar",onClick:()=>setGrande(!1),"data-gufi-src":"sections/Casa.tsx:234"},__gh(import_lucide_react2.X,{size:18,strokeWidth:2}))))}function Materiales({d}){return __gh("section",{className:"cs-parte",id:"materiales","data-gufi-src":"sections/Casa.tsx:243"},__gh("div",{className:"cs-ancho","data-gufi-src":"sections/Casa.tsx:244"},__gh(Revela,null,__gh("p",{className:"cs-ojo","data-gufi-src":"sections/Casa.tsx:245"},"Los materiales"),__gh("h2",{className:"cs-h2","data-gufi-src":"sections/Casa.tsx:245"},"Elegidos para cada estancia."),__gh("p",{className:"cs-lead","data-gufi-src":"sections/Casa.tsx:246"},"Suelos y revestimientos de las marcas con las que trabaja ",d.estudio.nombre,", con los metros que lleva cada uno.")),__gh("div",{className:"cs-materiales","data-gufi-src":"sections/Casa.tsx:247"},d.materiales.map((m,i)=>__gh(Revela,{key:`${m.uso}-${m.id}`,className:"cs-material",retraso:i%4*80},__gh("div",{className:"muestra",style:{background:m.color??"#f5f5f7"},"data-gufi-src":"sections/Casa.tsx:250"}),__gh("b",{"data-gufi-src":"sections/Casa.tsx:251"},m.nombre),m.marca&&__gh("div",{className:"marca","data-gufi-src":"sections/Casa.tsx:252"},m.marca),__gh("div",{className:"donde","data-gufi-src":"sections/Casa.tsx:253"},`${m.uso==="Suelo"?"Suelo":"Paredes"} \xB7 ${m.estancias.join(", ")} \xB7 ${m2(m.m2)}`))))))}function Presupuesto({p}){let mayor=Math.max(...p.capitulos.map(c=>c.importe),1);return __gh("section",{className:"cs-parte gris",id:"presupuesto","data-gufi-src":"sections/Casa.tsx:265"},__gh(Revela,{className:"cs-ancho cs-pres"},__gh("div",{"data-gufi-src":"sections/Casa.tsx:267"},__gh("p",{className:"cs-ojo","data-gufi-src":"sections/Casa.tsx:268"},"El presupuesto"),__gh("p",{className:"total cs-num","data-gufi-src":"sections/Casa.tsx:269"},__gh(Cuenta,{valor:p.total,formato:eurosRedondos})),__gh("p",{className:"nota","data-gufi-src":"sections/Casa.tsx:270"},"Sin IVA. Sale de las mediciones del modelo con los precios y los materiales del estudio: si la casa cambia, cambia con ella.")),__gh("div",{"data-gufi-src":"sections/Casa.tsx:272"},p.capitulos.map(c=>__gh("div",{className:"cs-cap",key:c.nombre,"data-gufi-src":"sections/Casa.tsx:274"},__gh("div",{className:"fila","data-gufi-src":"sections/Casa.tsx:275"},__gh("span",{"data-gufi-src":"sections/Casa.tsx:275"},c.nombre),__gh("b",{className:"cs-num","data-gufi-src":"sections/Casa.tsx:275"},euros(c.importe))),__gh("div",{className:"barra","data-gufi-src":"sections/Casa.tsx:276"},__gh("i",{style:{"--p":String(c.importe/mayor)},"data-gufi-src":"sections/Casa.tsx:276"})))))))}var import_react5=__toESM(require("react"));function Portada({gufi}){let[r,setR]=import_react5.default.useState(null),[fallo,setFallo]=import_react5.default.useState("");return import_react5.default.useEffect(()=>{let vivo=!0;return gufi.publicAutomation("arquitectura_cliente").run({}).then(x=>{vivo&&setR(x)}).catch(e=>{vivo&&setFallo(e instanceof Error?e.message:String(e))}),()=>{vivo=!1}},[gufi]),fallo?__gh(Aviso,{estudio:null,titulo:"No se ha podido abrir",texto:`Vuelve a intentarlo en un momento. ${fallo}`}):r?__gh(Aviso,{estudio:r.estudio,titulo:"Tu casa, en 3D.",texto:`Abre el enlace que te ha mandado ${r.estudio.nombre}: la recorrer\xE1s planta a planta, ver\xE1s sus planos y materiales y la pondr\xE1s en tu sal\xF3n con el m\xF3vil.`}):__gh("div",{className:"cs-aviso","data-gufi-src":"sections/Portada.tsx:18"})}function Web({gufi}){let[vista]=gufi.router.usePathView({initial:"inicio",routes:{inicio:"/",casa:"/casa"}}),codigo=new URLSearchParams(window.location.search).get("c");return __gh("div",{className:"cs","data-gufi-src":"page.tsx:18"},__gh("style",{"data-gufi-src":"page.tsx:19"},ESTILOS),vista==="casa"&&codigo?__gh(Casa,{gufi,codigo}):__gh(Portada,{gufi}))}var featureConfig={dataSources,automations,meta:{name:"Web para clientes",version:"1.0.0",public:!0}};var stdin_default=Web;