/* ---------- GALLERIE ---------- */
.masonry{columns:3;column-gap:16px}
.masonry figure{break-inside:avoid;margin-bottom:16px;position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:var(--bg2)}
.masonry a{display:block;cursor:zoom-in;position:relative}
.masonry img{width:100%;height:auto;transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .4s;filter:brightness(.88) saturate(.95)}
.masonry figure:hover img{transform:scale(1.05);filter:none}
.masonry a::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(6,8,13,.85));opacity:0;transition:.3s}
.masonry figure:hover a::after{opacity:1}
.masonry figcaption{position:absolute;left:16px;bottom:12px;right:16px;z-index:2;opacity:0;transform:translateY(8px);transition:.3s;font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;pointer-events:none}
.masonry figcaption small{display:block;color:var(--a);margin-top:2px;letter-spacing:.06em;text-transform:none}
.masonry figure:hover figcaption{opacity:1;transform:none}
.strip{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.strip a{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--line);aspect-ratio:1;display:block}
.strip img{width:100%;height:100%;object-fit:cover;filter:brightness(.8);transition:.6s}
.strip a:hover img{transform:scale(1.08);filter:none}
.subcards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:50px}
.subcard{position:relative;border:1px solid var(--line);border-radius:20px;padding:26px;background:var(--panel);transition:.3s;overflow:hidden}
.subcard:hover{border-color:rgba(34,228,255,.4);transform:translateY(-4px)}
.subcard .th{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px}
.subcard .th img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;filter:brightness(.85)}
.subcard h3{font-size:22px;text-transform:uppercase;font-weight:600}
.subcard p{color:var(--t3);font-size:15px;font-weight:300;margin:6px 0 14px}
.subcard h3 a::after{content:"";position:absolute;inset:0}

/* ---------- LIGHTBOX / MODALE VIDEO ---------- */
.lb{position:fixed;inset:0;z-index:200;background:rgba(3,5,8,.94);backdrop-filter:blur(10px);display:none;align-items:center;justify-content:center;padding:30px}
.lb.on{display:flex}
.lb img{max-height:calc(86vh / var(--z,1));max-width:calc(92vw / var(--z,1));border-radius:12px;box-shadow:0 30px 100px rgba(0,0,0,.7)}
.lb .cap{position:absolute;bottom:22px;left:0;right:0;text-align:center;font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--muted)}
.lb button{position:absolute;background:var(--panel);border:1px solid var(--line);color:var(--text);width:48px;height:48px;border-radius:50%;font-size:20px;cursor:pointer;transition:.2s}
.lb button:hover{border-color:var(--a);color:var(--a)}
.lb .x{top:22px;right:22px}.lb .p{left:22px;top:50%}.lb .nx{right:22px;top:50%}
.lb iframe{width:min(1100px,92vw);aspect-ratio:16/9;border:0;border-radius:14px;box-shadow:0 30px 100px rgba(0,0,0,.7)}

/* ---------- filtri del portfolio ---------- */
button.fchip{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;padding:7px 13px;border:1px solid var(--line);border-radius:999px;color:var(--muted);text-transform:uppercase;background:none;cursor:pointer;transition:.2s}
button.fchip:hover{border-color:var(--a);color:var(--a)}
button.fchip.on{background:var(--grad);border-color:transparent;color:#04060a;font-weight:700}
html[data-theme="light"] button.fchip.on{color:#fff}
.masonry figure[hidden]{display:none}
.fcount{font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--muted);margin:-8px 0 22px}
