/* Homepage v2: field-lab hero and visual notebook grid. */
.ne-hero--lab {
	padding: clamp(4.5rem, 7vw, 7rem) 0;
}
.ne-hero--lab .ne-hero__grid {
	grid-template-columns: minmax(0, 1.04fr) minmax(360px, .96fr);
	gap: clamp(3rem, 6vw, 6rem);
	align-items: center;
}
.ne-hero__copy { max-width: 43rem; }
.ne-hero--lab h1 {
	max-width: 12ch;
	margin: 1.2rem 0 1.35rem;
	font-size: clamp(3.8rem, 5.6vw, 6.15rem);
	line-height: .96;
	letter-spacing: -.065em;
	text-wrap: balance;
}
.ne-hero--lab .ne-hero__intro {
	max-width: 38rem;
	font-size: clamp(1.2rem, 1.65vw, 1.48rem);
	line-height: 1.5;
}
.ne-lab-board {
	position: relative;
	overflow: hidden;
	padding: clamp(1.4rem, 2.5vw, 2rem);
	border: 1px solid rgba(255,255,255,.1);
	border-radius: 1.25rem;
	background: radial-gradient(circle at 90% 0, rgba(205,234,99,.18), transparent 30%), linear-gradient(145deg, #123f3a, #0b2b27 72%);
	color: var(--color-surface);
	box-shadow: 0 2rem 5rem rgba(18,63,58,.2);
}
.ne-lab-board::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
	background-size: 2.5rem 2.5rem;
	mask-image: linear-gradient(to bottom, black, transparent 82%);
	pointer-events: none;
}
.ne-lab-board > * { position: relative; z-index: 1; }
.ne-lab-board__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1.25rem;
	margin-bottom: 1.35rem;
}
.ne-lab-board__kicker {
	display: block;
	margin-bottom: .3rem;
	color: rgba(255,255,255,.55);
	font-family: var(--font-mono);
	font-size: .66rem;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.ne-lab-board h2 {
	margin: 0;
	color: #fff;
	font-size: clamp(1.45rem, 2.2vw, 2rem);
	line-height: 1.1;
	letter-spacing: -.04em;
}
.ne-lab-board .ne-live-status {
	flex: 0 0 auto;
	padding: .38rem .55rem;
	border: 1px solid rgba(205,234,99,.25);
	border-radius: 999px;
	background: rgba(205,234,99,.08);
	color: var(--color-accent);
	font-family: var(--font-mono);
	font-size: .62rem;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.ne-lab-focus {
	position: relative;
	display: grid;
	gap: .7rem;
	padding: clamp(1.25rem, 2vw, 1.65rem);
	border-radius: .95rem;
	background: var(--color-accent);
	color: var(--color-primary-900);
	text-decoration: none;
	box-shadow: 0 1rem 2.5rem rgba(0,0,0,.16);
	transition: transform .22s ease, box-shadow .22s ease;
}
.ne-lab-focus:hover {
	transform: translateY(-3px);
	box-shadow: 0 1.35rem 3rem rgba(0,0,0,.22);
}
.ne-lab-focus__stage {
	font-family: var(--font-mono);
	font-size: .65rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.ne-lab-focus strong {
	max-width: 19ch;
	font-size: clamp(1.3rem, 2vw, 1.8rem);
	line-height: 1.08;
	letter-spacing: -.04em;
}
.ne-lab-focus__arrow {
	position: absolute;
	top: 1.25rem;
	right: 1.25rem;
	font-size: 1.1rem;
}
.ne-lab-queue {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .7rem;
	margin-top: .7rem;
}
.ne-lab-queue a {
	display: grid;
	gap: .45rem;
	min-height: 7rem;
	padding: 1rem;
	border: 1px solid rgba(255,255,255,.12);
	border-radius: .8rem;
	background: rgba(255,255,255,.065);
	color: #fff;
	text-decoration: none;
	transition: background .2s ease, transform .2s ease;
}
.ne-lab-queue a:hover {
	transform: translateY(-2px);
	background: rgba(255,255,255,.11);
}
.ne-lab-queue span {
	color: var(--color-accent);
	font-family: var(--font-mono);
	font-size: .62rem;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.ne-lab-queue strong {
	align-self: end;
	font-size: .93rem;
	line-height: 1.25;
}
.ne-lab-process {
	display: grid;
	grid-template-columns: auto 1fr auto 1fr auto 1fr auto;
	gap: .6rem;
	align-items: center;
	margin-top: 1.35rem;
	color: rgba(255,255,255,.58);
	font-family: var(--font-mono);
	font-size: .6rem;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.ne-lab-process i {
	height: 1px;
	background: linear-gradient(90deg, rgba(205,234,99,.7), rgba(205,234,99,.12));
}
#latest-writing .ne-section__heading h2 { max-width: 20ch; }
.ne-notebook-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 2vw, 1.4rem);
}
.ne-notebook-card {
	min-width: 0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	border: 1px solid rgba(20,32,29,.09);
	border-radius: 1rem;
	background: var(--color-surface);
	box-shadow: 0 .85rem 2.4rem rgba(18,63,58,.06);
	transition: transform .24s ease, box-shadow .24s ease;
}
.ne-notebook-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 1.35rem 3.2rem rgba(18,63,58,.12);
}
.ne-notebook-card__media {
	position: relative;
	overflow: hidden;
	display: block;
	aspect-ratio: 16 / 10;
	background: var(--color-primary);
}
.ne-notebook-card__media img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transition: transform .5s cubic-bezier(.2,.7,.2,1);
}
.ne-notebook-card:hover .ne-notebook-card__media img { transform: scale(1.035); }
.ne-notebook-card__fallback {
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 1.25rem;
	background: radial-gradient(circle at 85% 15%, rgba(205,234,99,.22), transparent 30%), linear-gradient(145deg, var(--color-primary-900), var(--color-primary));
	color: var(--color-surface);
}
.ne-notebook-card__fallback span {
	font-family: var(--font-mono);
	font-size: .65rem;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.ne-notebook-card__fallback strong {
	color: var(--color-accent);
	font-size: 1.5rem;
}
.ne-notebook-card__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	padding: 1.3rem;
}
.ne-notebook-card h3 {
	margin: .85rem 0 .75rem;
	font-size: clamp(1.2rem, 1.6vw, 1.48rem);
	line-height: 1.15;
	letter-spacing: -.035em;
}
.ne-notebook-card h3 a { text-decoration: none; }
.ne-notebook-card__excerpt {
	display: -webkit-box;
	overflow: hidden;
	margin-bottom: 1.2rem;
	color: var(--color-secondary-700);
	font-family: var(--font-serif);
	font-size: 1rem;
	line-height: 1.48;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}
.ne-notebook-card__excerpt p { margin: 0; }
.ne-notebook-card__link {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	align-self: flex-start;
	margin-top: auto;
	color: var(--color-primary);
	font-size: .83rem;
	font-weight: 700;
	text-decoration: none;
}
.ne-notebook-card__link span { transition: transform .2s ease; }
.ne-notebook-card__link:hover span { transform: translateX(.25rem); }

/* Featured graphics often contain titles and logos; always preserve the full artwork. */
.ne-feature__media {
	background: #fff;
}
.ne-feature__media img {
	object-fit: contain;
	object-position: center;
	background: #fff;
}

@media (max-width: 900px) {
	.ne-hero--lab .ne-hero__grid {
		grid-template-columns: 1fr;
		gap: 3rem;
	}
	.ne-hero__copy { max-width: 48rem; }
	.ne-hero--lab h1 {
		max-width: 11ch;
		font-size: clamp(3.7rem, 10vw, 6rem);
	}
	.ne-lab-board { max-width: 44rem; }
	.ne-notebook-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
	.ne-hero--lab { padding: 3.5rem 0 4rem; }
	.ne-hero--lab h1 {
		max-width: 12ch;
		font-size: clamp(3rem, 13vw, 4.35rem);
		letter-spacing: -.058em;
	}
	.ne-hero--lab .ne-hero__intro { font-size: 1.16rem; }
	.ne-lab-board {
		padding: 1.05rem;
		border-radius: 1rem;
	}
	.ne-lab-board__head { align-items: center; }
	.ne-lab-queue { grid-template-columns: 1fr; }
	.ne-lab-queue a { min-height: 5.8rem; }
	.ne-lab-process {
		grid-template-columns: repeat(4, auto);
		justify-content: space-between;
	}
	.ne-lab-process i { display: none; }
	.ne-notebook-grid { grid-template-columns: 1fr; }
}