/* Blog: project chapters on the index and the single entry template. */
.nc-blog { --blog-muted: #5f5b55; padding-top: var(--site-header-height); background: var(--nc-paper); color: var(--nc-ink); }
.nc-blog ::selection { background: var(--nc-wine); color: var(--nc-paper-light); }
.nc-blog a { color: inherit; text-decoration-color: var(--nc-wine); text-decoration-thickness: 1px; text-underline-offset: .3em; }
.nc-blog a:focus-visible { outline: 2px solid var(--nc-wine); outline-offset: 4px; border-radius: 1px; }

.nc-blog__intro { max-width: var(--nc-content-width); margin: auto; padding: clamp(3.5rem, 8vw, 7rem) var(--nc-gutter) clamp(2.5rem, 5vw, 4.5rem); }
.nc-blog__intro h1 { margin: 0; font-size: clamp(3.5rem, 8vw, 6rem); font-weight: 400; letter-spacing: -.03em; line-height: .95; }
.nc-blog .nc-blog__lede { max-width: 34rem; margin: 1.5rem 0 0; color: var(--nc-ink); font-size: 1.0625rem; line-height: 1.6; text-wrap: pretty; }

.nc-blog__project { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2.75rem); align-items: start; max-width: var(--nc-content-width); margin: auto; padding: clamp(2.5rem, 5vw, 4.5rem) var(--nc-gutter) clamp(3rem, 7vw, 6rem) }
.nc-blog__aside { grid-column: 1 / span 5; position: sticky; top: calc(var(--site-header-height) + 2rem); }
.nc-blog__aside h2 { margin: 0; font-size: clamp(2rem, 3.6vw, 3rem); font-weight: 400; letter-spacing: -.025em; line-height: 1.05; text-wrap: balance; }
.nc-blog .nc-blog__about { max-width: 30rem; margin: .9rem 0 0; color: var(--nc-ink); font-size: .9375rem; line-height: 1.6; }
.nc-blog__count { display: block; margin-top: .75rem; color: var(--blog-muted); font-size: .8125rem; font-variant-numeric: tabular-nums; }
.nc-blog__cover { position: relative; margin: 1.75rem 0 0; overflow: hidden; background: var(--nc-paper-soft); aspect-ratio: 4 / 3; }
.nc-blog__cover img { display: block; width: 100%; height: 100%; object-fit: cover; transition: opacity 240ms ease; }
.nc-blog__cover img.is-swapping { opacity: 0; }

.nc-blog__entries { grid-column: 7 / span 6; margin: 0; padding: 0; list-style: none; }
.nc-blog__row { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); gap: .25rem 1.25rem; padding-block: 1.1rem; text-decoration: none; }
.nc-blog__date { grid-row: 1 / span 2; padding-top: .35rem; color: var(--blog-muted); font-size: .8125rem; font-variant-numeric: tabular-nums; }
.nc-blog__title { font-family: var(--font-display); font-size: clamp(1.375rem, 2vw, 1.75rem); letter-spacing: -.02em; line-height: 1.15; text-decoration: underline; text-decoration-color: transparent; text-decoration-thickness: 1px; text-underline-offset: .2em; transition: text-decoration-color 160ms ease; text-wrap: balance; }
.nc-blog__row:hover .nc-blog__title, .nc-blog__row:focus-visible .nc-blog__title { text-decoration-color: var(--nc-wine); }
.nc-blog__venue { color: var(--blog-muted); font-size: .875rem; }

/* Single entry: photo viewer, then facts and text. */
.nc-post__crumbs { display: flex; flex-wrap: wrap; gap: .4rem; max-width: var(--nc-content-width); margin: auto; padding: clamp(1.75rem, 3.5vw, 2.75rem) var(--nc-gutter) 1.25rem; color: var(--blog-muted); font-size: .8125rem; }
.nc-post__crumbs a { text-decoration: none; }
.nc-post__crumbs a:hover { text-decoration: underline; }

.nc-viewer { max-width: var(--nc-content-width); margin: auto; padding: 0 var(--nc-gutter); }
.nc-viewer__stage { position: relative; height: clamp(22rem, 72svh, 46rem); background: var(--nc-paper-soft); }
.nc-viewer__image { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: scale-down; transition: opacity 160ms ease; }
.nc-viewer__image.is-changing { opacity: 0; }
.nc-viewer__nav { position: absolute; top: 50%; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; padding: 0; border: 1px solid var(--nc-ink); border-radius: 50%; background: var(--nc-paper-light); color: var(--nc-ink); cursor: pointer; transform: translateY(-50%); transition: background-color 160ms ease, color 160ms ease; }
.nc-viewer__nav:hover { background: var(--nc-ink); color: var(--nc-paper-light); }
.nc-viewer__nav:focus-visible { outline: 2px solid var(--nc-wine); outline-offset: 3px; }
.nc-viewer__nav--prev { left: 1rem; }
.nc-viewer__nav--next { right: 1rem; }
.nc-viewer__bar { display: flex; align-items: center; gap: 1.5rem; margin-top: .75rem; }
.nc-viewer__thumbs { display: flex; flex: 1; gap: .5rem; margin: 0; padding: .25rem; overflow-x: auto; list-style: none; scroll-snap-type: x proximity; scrollbar-width: thin; scrollbar-color: var(--nc-line) transparent; }
.nc-viewer__thumbs li { flex: none; scroll-snap-align: start; }
.nc-viewer__thumb { display: block; width: 6rem; aspect-ratio: 4 / 3; overflow: hidden; background: var(--nc-paper-soft); opacity: .62; transition: opacity 160ms ease; }
.nc-viewer__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nc-viewer__thumb:hover { opacity: 1; }
.nc-viewer__thumb[aria-current="true"] { outline: 2px solid var(--nc-ink); outline-offset: 2px; opacity: 1; }
.nc-viewer__thumb:focus-visible { outline: 2px solid var(--nc-wine); outline-offset: 2px; opacity: 1; }
.nc-viewer__count { flex: none; margin: 0; color: var(--blog-muted); font-size: .8125rem; font-variant-numeric: tabular-nums; }

.nc-entry { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2.75rem); max-width: var(--nc-content-width); margin: auto; padding: clamp(2.5rem, 6vw, 5rem) var(--nc-gutter) clamp(3rem, 7vw, 6rem); }
.nc-entry--text-only { padding-top: clamp(1rem, 3vw, 2.5rem); }
.nc-entry__head { grid-column: 1 / span 5; }
.nc-entry__head h1 { margin: 0; font-size: clamp(2.25rem, 4.6vw, 3.75rem); font-weight: 400; letter-spacing: -.03em; line-height: 1.02; text-wrap: balance; }
.nc-entry__facts { display: grid; margin: 1.75rem 0 0; max-width: 24rem; }
.nc-entry__facts div { display: grid; grid-template-columns: 5rem minmax(0, 1fr); gap: 1rem; padding-block: .4rem; }
.nc-entry__facts dt { color: var(--blog-muted); font-size: .8125rem; line-height: 1.55; }
.nc-entry__facts dd { margin: 0; font-size: .9375rem; line-height: 1.55; }
.nc-entry__text { grid-column: 7 / span 6; }
.nc-entry--text-only .nc-entry__text { padding-top: .5rem; }
.nc-blog .nc-entry__text p { max-width: 60ch; margin: 0 0 1.1em; color: var(--nc-ink); font-size: 1.0625rem; line-height: 1.72; text-wrap: pretty; }

.nc-post__more { background: var(--nc-paper-soft); }
.nc-post__more-inner { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2.75rem); max-width: var(--nc-content-width); margin: auto; padding: clamp(3rem, 7vw, 6rem) var(--nc-gutter); }
.nc-post__more h2 { grid-column: 1 / span 4; margin: 0; font-size: clamp(1.875rem, 3.2vw, 2.75rem); font-weight: 400; letter-spacing: -.025em; line-height: 1.05; text-wrap: balance; }
.nc-post__more .nc-blog__entries { grid-column: 6 / span 7; }
.nc-post__more h2, .nc-post__more .nc-blog__entries, .nc-post__back { grid-row: 1; }
.nc-post__back { grid-column: 1 / span 4; align-self: end; margin: 0; font-size: .9375rem; }

@media (max-width: 900px) {
	.nc-blog__aside { grid-column: 1 / -1; position: static; }
	.nc-blog__entries { grid-column: 1 / -1; margin-top: 1rem; }
	.nc-blog__row { grid-template-columns: 1fr; gap: .2rem; }
	.nc-blog__date { grid-row: auto; padding-top: 0; }
	.nc-post__more h2, .nc-post__more .nc-blog__entries, .nc-post__back { grid-column: 1 / -1; grid-row: auto; }
	.nc-post__more h2 { margin-bottom: 1rem; }
	.nc-viewer { padding: 0; }
	.nc-viewer__stage { height: auto; aspect-ratio: 4 / 3; }
	.nc-viewer__nav { width: 2.5rem; height: 2.5rem; }
	.nc-viewer__nav--prev { left: .5rem; }
	.nc-viewer__nav--next { right: .5rem; }
	.nc-viewer__bar { padding-inline: var(--nc-gutter); gap: 1rem; }
	.nc-viewer__thumb { width: 4.75rem; }
	.nc-entry__head, .nc-entry__text { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) { .nc-blog__cover img, .nc-blog__title, .nc-viewer__image, .nc-viewer__nav, .nc-viewer__thumb { transition: none; } }
.nc-post__more--solo .nc-post__more-inner { padding-block: clamp(2rem, 4vw, 3rem); }
.nc-post__more--solo .nc-post__back { grid-column: 1 / -1; }
