html.ktpa-open, body.ktpa-open { overflow: hidden !important; }
.ktpa-popup { position: fixed; inset: 0; z-index: var(--ktpa-z, 999999); display: grid; place-items: center; padding: 18px; opacity: 0; visibility: hidden; transition: opacity .22s ease, visibility .22s ease; box-sizing: border-box; }
.ktpa-popup[hidden] { display: none !important; }
.ktpa-popup.is-visible { opacity: 1; visibility: visible; }
.ktpa-popup.is-closing { opacity: 0; visibility: hidden; }
.ktpa-overlay { position: absolute; inset: 0; background: rgba(0,0,0,var(--ktpa-overlay,.72)); backdrop-filter: blur(var(--ktpa-blur,4px)); -webkit-backdrop-filter: blur(var(--ktpa-blur,4px)); }
.ktpa-dialog { position: relative; width: min(100%, var(--ktpa-width,640px)); max-height: min(92vh, 900px); overflow: visible; border-radius: 16px; background: #fff; box-shadow: 0 24px 70px rgba(0,0,0,.35); z-index: 2; transform-origin: center; }
.ktpa-content { overflow: hidden; border-radius: inherit; }
.ktpa-image { display: block; width: 100%; height: auto; max-height: 86vh; object-fit: contain; border-radius: inherit; }
.ktpa-link { display: block; line-height: 0; text-decoration: none; }
.ktpa-label { position: absolute; left: 12px; top: 10px; z-index: 4; padding: 4px 8px; border-radius: 999px; background: rgba(0,0,0,.62); color: #fff; font: 600 11px/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; letter-spacing: .02em; }
.ktpa-close { position: absolute; right: -12px; top: -12px; z-index: 5; width: 36px; height: 36px; border: 2px solid #fff; border-radius: 50%; background: #111; color: #fff; cursor: pointer; font: 400 25px/30px Arial,sans-serif; box-shadow: 0 5px 20px rgba(0,0,0,.3); display: grid; place-items: center; padding: 0; }
.ktpa-close:hover, .ktpa-close:focus-visible { background: #d71920; outline: 3px solid rgba(255,255,255,.55); outline-offset: 2px; }
.ktpa-close.is-locked { cursor: not-allowed; font-size: 14px; opacity: .85; }
.ktpa-empty { padding: 32px; text-align: center; font: 500 14px/1.5 system-ui,sans-serif; color: #555; }
.ktpa-animation-zoom .ktpa-dialog { transform: scale(.88); opacity: 0; transition: transform .28s cubic-bezier(.2,.8,.2,1), opacity .24s ease; }
.ktpa-animation-zoom.is-visible .ktpa-dialog { transform: scale(1); opacity: 1; }
.ktpa-animation-fade .ktpa-dialog { opacity: 0; transition: opacity .28s ease; }
.ktpa-animation-fade.is-visible .ktpa-dialog { opacity: 1; }
.ktpa-animation-slide-up .ktpa-dialog { transform: translateY(42px); opacity: 0; transition: transform .3s ease, opacity .25s ease; }
.ktpa-animation-slide-up.is-visible .ktpa-dialog { transform: translateY(0); opacity: 1; }
.ktpa-animation-slide-down .ktpa-dialog { transform: translateY(-42px); opacity: 0; transition: transform .3s ease, opacity .25s ease; }
.ktpa-animation-slide-down.is-visible .ktpa-dialog { transform: translateY(0); opacity: 1; }
@media (max-width: 767px) { .ktpa-popup { padding: 14px; } .ktpa-dialog { width: min(100%, var(--ktpa-width,640px)); border-radius: 12px; } .ktpa-close { right: -6px; top: -10px; width: 34px; height: 34px; } .ktpa-image { max-height: 82vh; } }
@media (prefers-reduced-motion: reduce) { .ktpa-popup, .ktpa-dialog { transition: none !important; animation: none !important; } }
