.article-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:start;margin:48px 0}.article-row.wide-left{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.article-row.wide-right{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}.article-column{min-width:0}.article-column .article-media{margin:0 0 24px}.article-column>h2:first-child,.article-column>p:first-child{margin-top:0}.article-column img{max-width:100%}@media(max-width:760px){.article-row,.article-row.wide-left,.article-row.wide-right{grid-template-columns:1fr;gap:24px}}
/* Video sizing follows the article/column width, preserving the shared content edges. */
.article-gallery[data-aspect] .collection-image img{aspect-ratio:var(--gallery-aspect,4 / 3);object-fit:var(--gallery-fit,cover)}
.article-gallery[data-aspect="original"] .collection-image img{aspect-ratio:auto;height:auto;object-fit:contain}
.article-media.article-video.is-frameless{border:0;background:transparent;padding:0}
.article-video.is-wide video{display:block;width:100%;height:auto;max-height:none;object-fit:contain;margin-inline:auto}
.article-video.is-wide video[data-video-shape="portrait"]{width:min(100%,calc(720px * var(--video-ratio)),calc(80svh * var(--video-ratio)))}
.article-video.is-wide .provider-video{display:block;width:100%;height:auto;max-height:min(720px,80svh);object-fit:contain}
.article-media.article-video.is-wide{width:100%;max-width:100%;margin-inline:0}

.article-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:36px 0;min-width:0}.article-gallery.gallery-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.article-gallery.gallery-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.collection-image{margin:0;min-width:0}.article-gallery .collection-image img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;padding:0;max-height:none}.collection-image figcaption{font:11px/1.6 var(--mono);color:var(--muted);margin:10px 0 0;overflow-wrap:anywhere}.article-carousel{margin:36px 0;min-width:0}.carousel-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;overscroll-behavior-x:contain;min-width:0}.carousel-track>.collection-image{flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always;min-width:0}.carousel-track .collection-image img{display:block;width:100%;height:auto;aspect-ratio:16/10;max-height:560px;object-fit:contain;padding:0}.carousel-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:14px;font:11px var(--mono)}.carousel-controls button{font:20px var(--sans);padding:6px 18px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}.carousel-controls button:hover{border-color:var(--accent);color:var(--accent)}.carousel-controls button:disabled{opacity:.3;cursor:default}@media(max-width:640px){.article-gallery,.article-gallery.gallery-cols-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}@media(max-width:380px){.article-gallery{grid-template-columns:1fr}}

.carousel-track{scrollbar-width:none;-ms-overflow-style:none}.carousel-track::-webkit-scrollbar{display:none;width:0;height:0}.image-loupe-trigger{display:block;cursor:zoom-in}.image-loupe-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.image-loupe{box-sizing:border-box;width:min(1500px,96vw);max-width:96vw;height:94dvh;max-height:94dvh;margin:auto;padding:52px 28px 22px;border:1px solid var(--line);background:var(--bg);color:var(--ink);overflow:hidden}.image-loupe::backdrop{background:#000d}.image-loupe[open]{display:flex;flex-direction:column;gap:16px}.loupe-close{position:absolute;top:8px;right:12px;font:28px var(--sans);padding:4px 12px}.image-loupe button{background:transparent;color:var(--ink);border:1px solid var(--line);cursor:pointer}.image-loupe button:hover{color:var(--accent);border-color:var(--accent)}.image-loupe button:disabled{opacity:.3;cursor:default}.loupe-viewport{min-height:0;flex:1;display:flex;align-items:center;justify-content:center;overflow:auto}.image-loupe .loupe-image{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;padding:0;background:transparent}.loupe-footer{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;gap:18px;font:11px/1.6 var(--mono)}.loupe-caption{margin:0;min-width:0;overflow-wrap:anywhere}.loupe-controls{display:flex;align-items:center;gap:12px;flex-shrink:0}.loupe-controls button{padding:8px 12px;font:12px var(--mono)}.image-loupe.is-zoomed .loupe-viewport{display:block}.image-loupe.is-zoomed .loupe-image{max-width:none;max-height:none;object-fit:initial}.image-loupe button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:640px){.image-loupe{padding:50px 12px 16px;width:96vw}.loupe-footer{flex-direction:column;align-items:stretch}.loupe-controls{justify-content:space-between;gap:6px}.loupe-caption{max-height:48px;overflow:auto}}

.article-gallery.gallery-cols-1{grid-template-columns:minmax(0,1fr)}.article-gallery.gallery-cols-1 .collection-image img{aspect-ratio:auto;object-fit:contain}

.article-gallery.gallery-justified{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.gallery-justified>.collection-image{flex:0 0 auto;width:calc(50% - 8px)}.article-gallery.gallery-justified .collection-image img{aspect-ratio:auto;object-fit:contain;max-height:none;width:100%;height:auto}@media(max-width:640px){.article-gallery.gallery-justified{gap:12px}}

/* Single article images retain their proportions; framing is explicitly optional. */
.article-media.article-image{border:0;background:transparent;margin:34px auto;padding:0;max-width:100%}
.article-media.article-image img{display:block;width:100%;height:auto;max-width:100%;max-height:1100px;object-fit:contain;margin:0 auto;padding:0}
.article-media.article-image figcaption{border:0;background:transparent;padding:0;margin:12px 0 0;text-align:center;font:11px/1.7 var(--mono);color:var(--muted)}
.article-media.article-image.is-framed{border:1px solid var(--line);background:#101010;padding:16px}
.article-media.article-image.is-framed figcaption{border-top:1px solid var(--line);padding:12px 0 0}
.article-gallery.gallery-cols-1 .collection-image img{width:100%;height:auto;max-width:100%;max-height:1100px;object-fit:contain;margin:0 auto}
