﻿
        *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
        :root {
            --bg: #080808; --bg2: #0f0f0f;
            --border: rgba(255,255,255,0.07);
            --text: rgba(255,255,255,0.88);
            --muted: rgba(255,255,255,0.38);
            --gold: #c9a96e;
            --gold-dim: rgba(201,169,110,0.12);
            --gold-border: rgba(201,169,110,0.3);
            --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
        }
        * { scrollbar-width: none; }
        *::-webkit-scrollbar { display: none; }
        html, body { background: var(--bg); color: var(--text); font-family: "Poppins", sans-serif; font-weight: 300; line-height: 1.7; overflow-x: hidden; }
        .container { max-width: 1100px; margin: 0 auto; padding: 0 48px; width: 100%; }
        .back-link { display: inline-flex; align-items: center; gap: 8px; font-size: 0.6rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-decoration: none; margin-bottom: 28px; transition: color 0.2s; }
        .back-link:hover { color: var(--gold); }
        .back-link i { font-size: 0.55rem; }
        .hero { padding: 140px 0 60px; position: relative; }
        .hero::after { content: ""; position: absolute; bottom: 0; left: 0; right: 0; height: 1px; background: linear-gradient(to right, transparent, var(--gold-border) 30%, var(--gold-border) 70%, transparent); }
        .hero-tag { font-size: 0.6rem; letter-spacing: 0.28em; text-transform: uppercase; color: var(--gold); margin-bottom: 18px; display: flex; align-items: center; gap: 12px; animation: fadeUp 0.7s var(--ease-out) 0.1s both; }
        .hero-tag::before { content: ""; width: 24px; height: 1px; background: var(--gold); opacity: 0.5; }
        .hero h1 { font-family: "aktiv-grotesk", sans-serif; font-size: clamp(2rem, 4.5vw, 3.6rem); font-weight: 300; letter-spacing: 0.03em; line-height: 1.1; max-width: 720px; margin-bottom: 18px; animation: fadeUp 0.8s var(--ease-out) 0.25s both; }
        .hero h1 em { font-style: normal; color: var(--gold); }
        .hero-sub { color: var(--muted); font-size: 0.92rem; max-width: 480px; line-height: 1.75; animation: fadeUp 0.8s var(--ease-out) 0.4s both; }
        .hero-count { position: absolute; right: 48px; bottom: 24px; font-family: "aktiv-grotesk", sans-serif; font-size: 0.58rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); animation: fadeUp 0.8s var(--ease-out) 0.5s both; }
        .projects-section { padding: 48px 0 80px; }
        .projects-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; padding: 0 48px; }
        .proj-card { display: block; position: relative; aspect-ratio: 4 / 3; overflow: hidden; cursor: default; }
        .proj-bg { position: absolute; inset: 0; width: 100%; height: 100%; background-size: cover !important; background-position: center !important; transition: transform 0.7s var(--ease-out); }
        .proj-card:hover .proj-bg { transform: scale(1.04); }
        .proj-bg::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 70% 30%, rgba(201,169,110,0.07) 0%, transparent 60%); }
        .proj-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.45); transition: background 0.4s ease; }
        .proj-card:hover .proj-overlay { background: rgba(0,0,0,0.28); }
        .proj-top-border { position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform 0.4s var(--ease-out); }
        .proj-card:hover .proj-top-border { transform: scaleX(1); }
        .proj-content { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 24px; }
        .proj-name { font-family: "aktiv-grotesk", sans-serif; font-size: clamp(1rem, 1.8vw, 1.35rem); font-weight: 300; letter-spacing: 0.06em; color: #fff; line-height: 1.2; transition: transform 0.4s var(--ease-out); }
        .proj-card:hover .proj-name { transform: translateY(-4px); }
        .proj-action { display: flex; align-items: center; gap: 8px; font-size: 0.65rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold); margin-top: 10px; opacity: 0; transform: translateY(6px); transition: opacity 0.35s ease, transform 0.35s var(--ease-out); }
        .proj-card:hover .proj-action { opacity: 1; transform: translateY(0); }
        .proj-action i { font-size: 0.6rem; }
        .bg-1  { background: url('../img/kiu-av-italia.webp') center/cover no-repeat; }
        .bg-2  { background: url('../img/kiu-8-octubre.webp') center/cover no-repeat; }
        .bg-3  { background: url('../img/la-guadalupe.webp') center/cover no-repeat; }
        .bg-4  { background: url('../img/jardines-de-areco.webp') center/cover no-repeat; }
        .bg-5  { background: url('../img/link-center.webp') center/cover no-repeat; }
        .bg-6  { background: url('../img/cala-del-yacht.webp') center/cover no-repeat; }
        .bg-7  { background: url('../img/aero-met-cover.webp') center/cover no-repeat; }
        .bg-8  { background: url('../img/terrazas-de-polo.webp') center/cover no-repeat; }
        .bg-10 { background: url('../img/menara-one.webp') center/cover no-repeat; }
        .bg-9  { background: url('../img/crc-fitness.webp') center/cover no-repeat; }
        .bg-11 { background: url('../img/elbio-fernandez/n01.webp') center/cover no-repeat; }
        .bg-12 { background: url('../img/cover2index.webp') center/cover no-repeat; }
        .bg-13 { background: url('../img/colinas-de-maldonado/frontal.webp') center/cover no-repeat; }
        /* ── FLOATING PREVIEW ── */
        @media (hover: hover) and (pointer: fine) { .proj-content { display: none; } }

        #proj-preview {
            position: fixed; pointer-events: none; z-index: 500;
            width: 300px; height: 300px;
            border-radius: 50%; overflow: hidden;
            background-size: cover; background-position: center;
            opacity: 0; transform: scale(0.82);
            transition: opacity 0.22s ease, transform 0.22s ease;
            box-shadow: 0 24px 60px rgba(0,0,0,0.55);
            outline: 2px solid #c9a96e;
            outline-offset: 4px;
        }
        #proj-preview.visible { opacity: 1; transform: scale(1); }
        #proj-preview-label {
            position: absolute;
            bottom: 0; left: 0; right: 0; height: 55%;
            background: linear-gradient(to top, rgba(0,0,0,0.72) 0%, transparent 100%);
            display: flex; align-items: flex-end; justify-content: center;
            padding-bottom: 28px;
        }
        #proj-preview-label span {
            font-family: 'aktiv-grotesk', sans-serif;
            font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase;
            color: #fff; text-shadow: 0 1px 6px rgba(0,0,0,0.6);
        }
        @media (hover: none) { #proj-preview { display: none; } }

        /* ── IRIS TRANSITION ── */
        #proj-iris-wrap {
            position: fixed; inset: 0; z-index: 9000; pointer-events: none;
            clip-path: circle(0% at var(--cx, 50%) var(--cy, 50%));
            transition: clip-path 1.8s cubic-bezier(0.22, 1, 0.36, 1);
        }
        #proj-iris-wrap iframe {
            position: absolute; inset: 0; width: 100%; height: 100%; border: none;
        }
        #proj-iris-black {
            position: absolute; inset: 0; background: #0e0e0e; z-index: 1;
            transition: opacity 0.5s ease;
        }

        @keyframes fadeUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
        .anim { opacity: 0; transform: translateY(28px); transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out); }
        .anim.visible { opacity: 1; transform: none; }
        footer { border-top: 1px solid var(--border); padding: 28px 48px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; background: var(--bg); }
        .footer-social { display: flex; gap: 18px; align-items: center; }
        .footer-social a { color: #c9a96e; font-size: 1.15rem; text-decoration: none; transition: opacity 0.2s; }
        .footer-social a:hover { opacity: 0.65; }
        footer .logo { font-family: "aktiv-grotesk", sans-serif; font-size: 0.9rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.3); }
        footer p { font-size: 0.7rem; color: rgba(255,255,255,0.18); letter-spacing: 0.08em; }
        @media (max-width: 900px) { .projects-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; padding: 0 24px; } .container { padding: 0 24px; } .hero { padding: 120px 0 48px; } .hero-count { display: none; } footer { flex-direction: column; text-align: center; padding: 28px 24px; } }
        @media (max-width: 560px) { .projects-grid { grid-template-columns: 1fr; } }
    