/* ==========================================
   ULTRAKIT IMAGE REVEAL
   ========================================== */
.ultrakit-irv-wrapper { --irv-cols: 3; --irv-dur: 1100ms; --irv-ratio: 4 / 5; --irv-gap: 24px; --irv-r: 18px; --irv-cover: #1a1a2e; width: 100%; box-sizing: border-box; font-family: inherit; }
.ultrakit-irv-wrapper *, .ultrakit-irv-wrapper *::before, .ultrakit-irv-wrapper *::after { box-sizing: border-box; }
.ultrakit-irv-grid { display: grid; grid-template-columns: repeat(var(--irv-cols), minmax(0, 1fr)); gap: var(--irv-gap); }
.ultrakit-irv-item { margin: 0; min-width: 0; }
.ultrakit-irv-frame { position: relative; display: block; aspect-ratio: var(--irv-ratio); border-radius: var(--irv-r); overflow: hidden; text-decoration: none !important; background: transparent; }
.ultrakit-irv-mask { position: absolute; inset: 0; display: block; clip-path: var(--from); transition: clip-path var(--irv-dur) cubic-bezier(.77,0,.18,1); transition-delay: calc(var(--i) * var(--st, 180ms)); }
.ultrakit-irv-img { position: absolute; inset: 0; display: block; background-size: cover; background-position: center; transform: scale(1); transition: transform calc(var(--irv-dur) * 1.4) cubic-bezier(.22,.9,.3,1); transition-delay: calc(var(--i) * var(--st, 180ms)); }
.irv-zoom .ultrakit-irv-img { transform: scale(1.35); }
.ultrakit-irv-cover { position: absolute; inset: 0; display: block; background: var(--irv-cover); opacity: 0; }
.ultrakit-irv-item.is-in .ultrakit-irv-mask { clip-path: var(--to); }
.irv-zoom .ultrakit-irv-item.is-in .ultrakit-irv-img { transform: scale(1); }
.ultrakit-irv-frame:hover .ultrakit-irv-img { transform: scale(1.06) !important; transition-duration: 0.8s; transition-delay: 0s; }

.irv-fx-left { --from: inset(0 100% 0 0); --to: inset(0 0 0 0); }
.irv-fx-right { --from: inset(0 0 0 100%); --to: inset(0 0 0 0); }
.irv-fx-up { --from: inset(100% 0 0 0); --to: inset(0 0 0 0); }
.irv-fx-down { --from: inset(0 0 100% 0); --to: inset(0 0 0 0); }
.irv-fx-circle { --from: circle(0% at 50% 50%); --to: circle(75% at 50% 50%); }
.irv-fx-diagonal { --from: polygon(0 0, 0 0, 0 0); --to: polygon(0 0, 200% 0, 0 200%); }
.irv-fx-split { --from: inset(0 50% 0 50%); --to: inset(0 0 0 0); }
.irv-fx-blinds .ultrakit-irv-mask { clip-path: none; -webkit-mask: repeating-linear-gradient(90deg, #000 0 calc(var(--bw, 0%)), transparent calc(var(--bw, 0%)) 12.5%); mask: repeating-linear-gradient(90deg, #000 0 calc(var(--bw, 0%)), transparent calc(var(--bw, 0%)) 12.5%); transition: none; }
.irv-fx-blinds .ultrakit-irv-item.is-in .ultrakit-irv-mask { animation: ukIrvBlinds var(--irv-dur) cubic-bezier(.77,0,.18,1) both; animation-delay: calc(var(--i) * var(--st, 180ms)); }
@keyframes ukIrvBlinds { from { --bw: 0%; -webkit-mask-size: 100% 100%; } to { --bw: 12.5%; } }
@property --bw { syntax: '<percentage>'; inherits: true; initial-value: 0%; }
.irv-fx-blinds .ultrakit-irv-item:not(.is-in) .ultrakit-irv-mask { --bw: 0%; }
.irv-fx-blinds .ultrakit-irv-item.is-in .ultrakit-irv-mask { --bw: 12.5%; }

.ultrakit-irv-cap { margin: 0; font-weight: 800; }
.irv-cap-below .ultrakit-irv-cap { padding: 14px 4px 0; font-size: 15px; color: inherit; opacity: 0; transform: translateY(8px); transition: all 0.6s ease calc(var(--i) * var(--st, 180ms) + var(--irv-dur) * 0.6); }
.irv-cap-below .is-in .ultrakit-irv-cap { opacity: 1; transform: none; }
.irv-cap-overlay .ultrakit-irv-cap { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; padding: 40px 22px 20px; background: linear-gradient(180deg, transparent, rgba(10,10,28,0.75)); color: #ffffff; font-size: 16px; opacity: 0; transition: opacity 0.6s ease calc(var(--i) * var(--st, 180ms) + var(--irv-dur) * 0.6); }
.irv-cap-overlay .is-in .ultrakit-irv-cap { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .ultrakit-irv-mask, .ultrakit-irv-img { transition: none !important; clip-path: none !important; transform: none !important; } .ultrakit-irv-cap { opacity: 1 !important; transform: none !important; } }
