.ne-image { margin: 0; }
.ne-image__img { display: inline-block; max-width: 100%; height: auto; vertical-align: middle; }
.ne-image__link { display: inline-block; max-width: 100%; vertical-align: middle; }
.ne-image__link:focus-visible { outline: 3px solid var(--ne-accent, #2563eb); outline-offset: 2px; }
.ne-image[data-lightbox] .ne-image__link, .ne-image__link[data-ne-lightbox] { cursor: zoom-in; }
.ne-align-left { text-align: left; }
.ne-align-center { text-align: center; }
.ne-align-right { text-align: right; }
.ne-image__caption { font-size: .875em; opacity: .75; margin-top: .4em; line-height: 1.4; }
.ne-image.has-caption { max-width: 100%; }
/* Hover animations */
.ne-image__img[class*="ne-hover-"] { transition-duration: .3s; transition-property: transform; transition-timing-function: ease-out; }
.ne-hover-grow:hover { transform: scale(1.1); }
.ne-hover-shrink:hover { transform: scale(.9); }
.ne-hover-rotate:hover { transform: rotate(4deg); }
.ne-hover-grow-rotate:hover { transform: scale(1.1) rotate(4deg); }
.ne-hover-float:hover { transform: translateY(-8px); }
.ne-hover-sink:hover { transform: translateY(8px); }
.ne-hover-push:hover { transform: scale(.95); }
.ne-hover-pop:hover { transform: scale(1.2); }
.ne-hover-skew:hover { transform: skew(-10deg); }
.ne-hover-skew-forward:hover { transform: skew(-10deg); transform-origin: 0 100%; }
.ne-hover-skew-backward:hover { transform: skew(10deg); transform-origin: 0 100%; }
.ne-hover-hang:hover { transform: translateY(8px); }
.ne-hover-bob:hover { animation: ne-hover-bob 1.5s ease-in-out infinite; }
.ne-hover-pulse:hover { animation: ne-hover-pulse 1s linear infinite; }
.ne-hover-pulse-grow:hover { animation: ne-hover-pulse-grow .3s linear infinite alternate; }
.ne-hover-pulse-shrink:hover { animation: ne-hover-pulse-shrink .3s linear infinite alternate; }
@keyframes ne-hover-bob { 0%, 100% { transform: translateY(-8px); } 50% { transform: translateY(-4px); } }
@keyframes ne-hover-pulse { 25% { transform: scale(1.1); } 75% { transform: scale(.9); } }
@keyframes ne-hover-pulse-grow { to { transform: scale(1.1); } }
@keyframes ne-hover-pulse-shrink { to { transform: scale(.9); } }
@media (prefers-reduced-motion: reduce) { .ne-image__img[class*="ne-hover-"], .ne-image__img[class*="ne-hover-"]:hover { transition: none; animation: none; transform: none; } }
/* Lightbox (shared with other media blocks) */
.ne-lightbox{border:0;padding:0;margin:0;max-width:100vw;max-height:100vh;width:100vw;height:100vh;background:rgba(0,0,0,.9);color:#fff}
.ne-lightbox::backdrop{background:rgba(0,0,0,.9)}
.ne-lightbox[open]{display:flex;align-items:center;justify-content:center}
.ne-lightbox__figure{margin:0;max-width:90vw;max-height:90vh;text-align:center}
.ne-lightbox__img{max-width:90vw;max-height:80vh;object-fit:contain}
.ne-lightbox__caption{margin-top:8px}
.ne-lightbox__btn{position:absolute;background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:50%;width:44px;height:44px;font-size:22px;line-height:1;cursor:pointer}
.ne-lightbox__btn:hover{background:rgba(255,255,255,.3)}
.ne-lightbox__btn:focus-visible{outline:3px solid var(--ne-accent,#2563eb);outline-offset:2px}
.ne-lightbox__close{top:16px;right:16px}
