);
}
// ── Animated architectural blueprint (draws itself, loops) ───────────────────
function BlueprintMotion() {
// pathLength="1" normalizes the draw animation across every shape.
const P = { pathLength: 1, className: "draw" };
const d = (i) => ({ ...P, style: { animationDelay: (i * 0.22).toFixed(2) + "s" } });
return (
);
}
// ── Variant A — blueprint ─────────────────────────────────────────────────────
function HeroA() {
return (
+ ESC 1:50 · PROYECTO EN CURSO
N 34°36′ · OBRA #001 +
Construcción y remodelación.
Somos los profesionales que necesitás para tu nueva obra.
Construcción y remodelación integral de propiedades residenciales y comerciales en CABA y GBA.
);
}
// ── Variant B — split (with "obra en vivo" video module) ──────────────────────
function TimeCode() {
const [s, setS] = React.useState(0);
React.useEffect(() => {
const id = setInterval(() => setS((x) => x + 1), 1000);
return () => clearInterval(id);
}, []);
const mm = String(Math.floor(s / 60)).padStart(2, "0");
const ss = String(s % 60).padStart(2, "0");
return {mm}:{ss}:00;
}
function VideoObra() {
const [src, setSrc] = React.useState(null);
const inputRef = React.useRef(null);
const vidRef = React.useRef(null);
const onFile = (e) => {
const f = e.target.files && e.target.files[0];
if (!f) return;
setSrc(URL.createObjectURL(f));
};
React.useEffect(() => {
if (src && vidRef.current) {vidRef.current.load();const p = vidRef.current.play();if (p && p.catch) p.catch(() => {});}
}, [src]);
return (
{src && }
{!src &&
}
{src ? "Reproduciendo" : "Rec · Obra en vivo"}
);
}
function HeroB() {
return (
Tu obra,de principioa fin.
Gestión controlada de punta a punta: profesionalismo, control de obra y
comunicación fluida. Presupuestos detallados, contratos transparentes y reglas claras.
);
}
// ── Variant C — industrial marquee ────────────────────────────────────────────
function Marquee({ where }) {
const words = ["Remodelación", "Construcción", "Flipping", "Ampliaciones", "Quinchos", "Dirección de obra"];
const seq = [...words, ...words, ...words, ...words];
return (
{seq.map((w, i) => {w} —)}
);
}
function HeroC() {
return (
Remodelares nuestro oficio.
Construcción, remodelación y flipping inmobiliario en CABA y GBA.
Tu inversión inteligente comienza acá.
);
}
// ── Variant D — before/after wipe (foto antes/después) ───────────────────────
function HeroD() {
return (
↔
AntesDespués
Construcción y remodelación.
Somos los profesionales que necesitás para tu nueva obra.
Construcción y remodelación integral de propiedades residenciales y comerciales en CABA y GBA.
);
}
function Hero({ variant = "a" }) {
if (variant === "b") return ;
if (variant === "c") return ;
if (variant === "d") return ;
return ;
}
Object.assign(window, { Hero, Crane });