/* One editorial grid, using the journal's existing type and material tokens. */
.nb-archive, .nb-call {
    --nb-gap: clamp(1.75rem, 3.5vw, 4rem);
    --nb-space: clamp(3.5rem, 6vw, 6.5rem);
    --nb-columns: repeat(2, minmax(0, 1fr));
    color: var(--s13-reading);
}
.nb-archive { padding-bottom: 0; }
.nb-archive .collection-hero h1 { font-size: var(--s13-section-title-size); color: var(--s13-ink); }
.nb-archive .collection-intro p { color: var(--s13-emphasis); }
.nb-text-link { margin-top: 1.25rem; }
.nb-overview {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem; padding: 1.4rem 0; border-bottom: 1px solid var(--s13-line);
    color: var(--s13-muted); font-size: var(--s13-type-meta); line-height: 1.6;
    letter-spacing: .07em; text-transform: uppercase;
}
.nb-overview > :nth-child(2) { text-align: center; }
.nb-overview > :last-child { text-align: right; }
.nb-overview strong { display: block; margin-bottom: .55rem; color: var(--s13-ink); font: var(--s13-display-weight) clamp(1.5rem,2.6vw,2.75rem)/1 var(--s13-display); letter-spacing: var(--s13-display-tracking); text-transform: none; }
.nb-overview span { display: block; }
.nb-history, .nb-edition, .nb-next, .nb-call-hero-grid, .nb-call-layout {
    display: grid; grid-template-columns: var(--nb-columns); gap: var(--nb-gap);
}
.nb-history > *, .nb-edition > *, .nb-next > * { min-width: 0; }
.nb-history { padding: var(--nb-space) 0; }
.nb-history h2, .nb-next h2 {
    margin: 0; color: var(--s13-ink); font: var(--s13-display-weight) clamp(2.35rem, 4.5vw, 5rem)/var(--s13-display-leading-secondary) var(--s13-display);
    letter-spacing: var(--s13-display-tracking); text-transform: uppercase; text-wrap: balance;
}
.nb-history p, .nb-next p {
    margin: 0 0 1.4rem; max-width: 64ch; color: var(--s13-reading);
    font-size: clamp(1rem, 1.15vw, 1.1rem); line-height: 1.7;
}
.nb-history p:last-child { margin-bottom: 0; }
.nb-section-heading {
    display: flex; justify-content: space-between; gap: 1.5rem; align-items: center;
    border-top: 1px solid var(--s13-line); border-bottom: 1px solid var(--s13-line); padding: 1rem 0;
}
.nb-section-heading h2 { margin: 0; color: var(--s13-ink); font-size: .72rem; line-height: 1.5; letter-spacing: .12em; text-transform: uppercase; }
.nb-section-heading > span, .nb-section-heading nav { color: var(--s13-muted); font-size: var(--s13-type-meta); letter-spacing: .06em; text-transform: uppercase; }
.nb-section-heading nav { display: flex; gap: clamp(.75rem, 2vw, 1.75rem); flex-wrap: wrap; }
.nb-section-heading nav a { display: inline-flex; align-items: center; justify-content: center; min-width: 2.75rem; min-height: 2.75rem; color: var(--s13-secondary); }
.nb-section-heading nav a:is(:hover,:focus-visible) { color: var(--s13-accent); }
.nb-edition { padding: var(--nb-space) 0; border-bottom: 1px solid var(--s13-line); scroll-margin-top: 8rem; }
/* Edition copy uses the same heading and reading styles as archive cards. */
.nb-edition-copy.archive-cover-copy { padding: 0; }
.nb-edition-copy .archive-cover-meta { grid-template-columns: minmax(0, 1fr) auto; }
.nb-edition-count { font: inherit; }
.nb-edition-theme { margin: 1.25rem 0 0; }
.nb-next { align-items: center; padding: var(--nb-space) 0; }
.nb-next h2 { margin: .75rem 0 0; }
.nb-next .nb-text-link { margin-top: 0; }
.nb-call { padding: var(--s13-section-hero-inset) var(--s13-gutter) var(--nb-space); }
.nb-call-hero-grid { align-items: start; }
.nb-call-copy { min-width: 0; }
.nb-call-hero h1 {
    margin: 0 0 1.75rem;
    color: var(--s13-ink);
    font: var(--s13-display-weight) clamp(2.5rem, 4.7vw, 6rem)/var(--s13-display-leading-secondary) var(--s13-display);
    letter-spacing: var(--s13-display-tracking); text-transform: uppercase; text-wrap: balance;
    overflow-wrap: normal; hyphens: none;
}
.nb-call-hero p { margin: 0; max-width: 58ch; color: var(--s13-emphasis); font-size: clamp(1rem, 1.4vw, 1.25rem); line-height: 1.65; }
.nb-call-hero figure { margin: 0; width: 100%; min-width: 0; }
.nb-media-trigger { position: relative; display: block; width: fit-content; max-width: 100%; margin-inline: auto; cursor: zoom-in; }
.nb-call-hero figure img {
    display: block; width: auto; height: auto; max-width: 100%; max-height: 38rem;
    border: 1px solid var(--s13-media-border); outline: none;
}
.nb-media-expand {
    position: absolute; right: .75rem; bottom: .75rem; display: grid; place-items: center;
    width: 2.75rem; height: 2.75rem; background: rgba(0,0,0,.7); color: var(--s13-ink);
    font: 300 1.6rem/1 var(--s13-body); pointer-events: none; opacity: .7;
    transition: opacity 240ms var(--s13-ease);
}
.nb-media-trigger:is(:hover, :focus-visible) .nb-media-expand { opacity: 1; }
.nb-call-hero figcaption { margin-top: .85rem; color: var(--s13-muted); font-size: var(--s13-type-caption); line-height: 1.6; text-align: center; }
.nb-original-link { display: inline-flex; align-items: center; gap: .65rem; min-height: 2.75rem; color: var(--s13-secondary); text-decoration: underline; text-decoration-color: var(--s13-link-line); text-underline-offset: .2em; }
.nb-original-link:is(:hover,:focus-visible) { color: var(--s13-accent); text-decoration-color: var(--s13-accent); }
.nb-call-nav { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem 2rem; margin-top: 1.25rem; }
.nb-call-nav .nb-text-link { margin-top: 0; min-height: 2.75rem; }
.nb-call-layout { padding: var(--nb-space) 0; }
.nb-call-layout aside p { max-width: 58ch; color: var(--s13-reading); font-size: clamp(1rem, 1.15vw, 1.1rem); line-height: 1.7; margin: 1rem 0 2.5rem; }
.nb-call-layout aside p:last-child { margin-bottom: 0; }
.nb-original { min-width: 0; }
.nb-original h2 { margin: 0 0 1.3rem; color: var(--s13-ink); font: var(--s13-display-weight) clamp(1.75rem, 2.3vw, 2.75rem)/1.05 var(--s13-display); letter-spacing: var(--s13-display-tracking); text-transform: uppercase; }
.nb-archive-notice { color: var(--s13-muted); font-size: .8rem; line-height: 1.65; border-left: 1px solid var(--s13-line); padding-left: 1rem; margin: 0 0 2rem; }
.nb-prose { max-width: 64ch; font-size: clamp(1rem, 1.15vw, 1.1rem); line-height: 1.75; color: var(--s13-reading); }
.nb-prose p { margin: 0 0 1.6rem; }
.nb-prose h2, .nb-prose h3 { font-size: 1.35rem; line-height: 1.3; color: var(--s13-ink); margin: 2.5rem 0 1.4rem; }
.nb-prose a { color: var(--s13-emphasis); text-decoration: underline; text-decoration-color: var(--s13-link-line); text-underline-offset: .25em; }
.nb-prose a:is(:hover,:focus-visible) { color: var(--s13-accent); text-decoration-color: var(--s13-accent); }
.nb-prose figure { margin: 2rem 0; }
.nb-prose img { display: block; width: 100%; height: auto; border: 1px solid var(--s13-media-border); outline: none; }
.nb-prose figcaption { margin-top: .75rem; color: var(--s13-muted); font-size: var(--s13-type-caption); line-height: 1.6; }
.nb-prose > :last-child { margin-bottom: 0; }
.nb-playlist-links { margin-top: 2.5rem; }
.nb-playlist-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: .5rem 1rem; margin-bottom: .85rem; }
.nb-playlist-heading h3 { margin: 0; color: var(--s13-ink); font: 650 .75rem/1.45 var(--s13-body); letter-spacing: .07em; text-transform: uppercase; }
.nb-playlist-heading > :is(span, p) { margin: 0; color: var(--s13-muted); font-size: var(--s13-type-meta); line-height: 1.5; }
.nb-playlist-links ul { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--s13-line); }
.nb-playlist-links li { margin: 0; }
.nb-playlist-links li a { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 44px; padding: .75rem 0; border-top: 1px solid var(--s13-line); color: var(--s13-emphasis); font: 500 .875rem/1.5 var(--s13-body); text-decoration: none; }
.nb-playlist-links li a:is(:hover,:focus-visible) { color: var(--s13-accent); }
.nb-playlist-links .s13-icon-arrow { flex: 0 0 auto; }
.nb-winner-grid { display: grid; grid-template-columns: var(--nb-columns); gap: var(--nb-gap); padding: 2.5rem 0; }
/* A single restored winner is a full editorial row, not half an empty grid. */
.nb-winner-grid:has(> .nb-winner-card:only-child) { grid-template-columns: minmax(0, 1fr); }
.nb-winner-grid > .nb-winner-card:only-child { display: grid; grid-template-columns: var(--nb-columns); align-items: center; gap: var(--nb-gap); }
.nb-winner-grid > .nb-winner-card:only-child .archive-cover-copy { padding-top: 0; }
.nb-roster { border-bottom: 1px solid var(--s13-line); }
.nb-roster h3 { margin: 0; padding: 1.25rem 0; color: var(--s13-ink); font-size: .72rem; line-height: 1.5; letter-spacing: .07em; text-transform: uppercase; }
.nb-roster ul { list-style: none; margin: 0; padding: 0; }
.nb-roster li a { display: grid; grid-template-columns: 6rem minmax(0, 1fr) 8rem 1rem; gap: 1rem; align-items: center; padding: 1.25rem 0; border-top: 1px solid var(--s13-line); }
.nb-roster li span, .nb-roster li small { color: var(--s13-muted); font-size: var(--s13-type-meta); }
.nb-roster li strong { color: var(--s13-ink); font-size: .95rem; line-height: 1.4; }
.nb-roster li small { text-align: right; }
.s13-new-blood-mix .og-hero-copy { container-type: inline-size; }
/* Uncurated legacy names retain their fit guard; editorial wraps use shared mix typography. */
.s13-mix-feature.s13-new-blood-mix:not(.s13-editorial-title-breaks) h1.og-title { font-size: min(clamp(3.5rem, 7.2vw, 8rem), calc(133cqi / var(--s13-title-word))); overflow-wrap: normal; word-break: normal; }
.s13-mix-feature.s13-new-blood-mix.s13-mix-feature--long-title:not(.s13-editorial-title-breaks) h1.og-title { font-size: min(clamp(2.75rem, 4.7vw, 5.3rem), calc(133cqi / var(--s13-title-word))); }
.s13-new-blood-mix .og-hero-image:not(.s13-mix-hero-cover) { max-width: none; width: 100%; }
.s13-new-blood-mix .og-hero-image:not(.s13-mix-hero-cover) img { aspect-ratio: auto; height: auto; object-fit: contain; }
.s13-new-blood-mix .og-hero-image figcaption { padding-top: .75rem; color: var(--s13-muted); font-size: var(--s13-type-caption); line-height: 1.6; }
.s13-mix-feature.s13-new-blood-mix a.og-button { padding-right: .3rem; }
.s13-lightbox--new-blood.is-zoomed .s13-lightbox-meta { padding: .7rem 1rem; background: var(--s13-bg); }
.nb-archive a:focus-visible, .nb-call :is(a, summary, [role="button"]):focus-visible { outline: 1px solid var(--s13-ink); outline-offset: 5px; }
@media (max-width: 1000px) {
    .nb-history, .nb-next, .nb-call-hero-grid, .nb-call-layout, .nb-archive .collection-hero { grid-template-columns: minmax(0, 1fr); }
    .nb-call-hero h1 { font-size: clamp(2.5rem, 7vw, 5rem); max-width: 16ch; }
    .nb-call-hero figure img { max-height: 32rem; }
    .nb-archive .collection-intro { max-width: 40rem; }
    .nb-history h2 { max-width: 18ch; }
}
@media (max-width: 620px) {
    .nb-archive, .nb-call { --nb-columns: minmax(0, 1fr); }
    .nb-section-heading { flex-wrap: wrap; gap: .5rem 1rem; }
    .nb-section-heading nav { width: 100%; justify-content: space-between; gap: .25rem; }
    .nb-overview { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; }
    .nb-overview > :last-child { grid-column: 1 / -1; }
    .nb-overview > :nth-child(n) { text-align: left; }
    .nb-call-nav { align-items: flex-start; flex-direction: column; }
    .nb-call-hero h1 { font-size: clamp(2.2rem, 9vw, 3.7rem); }
    .nb-winner-grid > .nb-winner-card:only-child .archive-cover-copy { padding-top: 0; }
    .nb-roster li a { grid-template-columns: 4.8rem minmax(0, 1fr) 1rem; gap: .75rem; }
    .nb-roster li small { grid-column: 2; text-align: left; }
    .nb-roster li b { grid-column: 3; grid-row: 1; }
    .s13-lightbox--new-blood .s13-lightbox-stage { padding-bottom: 8rem; }
    .s13-lightbox--new-blood .s13-lightbox-image { max-height: calc(100svh - 12.25rem); }
    .s13-lightbox--new-blood .s13-lightbox-meta {
        right: .85rem; bottom: 4.1rem; grid-template-columns: 2.5rem minmax(0, 1fr);
        align-items: start; gap: .7rem; padding: .5rem .7rem; background: var(--s13-bg);
    }
    .s13-lightbox--new-blood .s13-lightbox-caption { max-height: none; margin: 0; }
    .s13-lightbox--new-blood.is-zoomed .s13-lightbox-image { max-height: none; }
}
@media (prefers-reduced-motion: reduce) {
    .nb-media-expand { transition: none; }
}
