@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&family=Exo+2:wght@500;600;700&family=EB+Garamond:ital,wght@1,400;1,500&family=Michroma&display=swap');
:root {
	--bg: #07090f;
	--bg-2: #0a0e1a;
	--bg-elev: #0c1322;
	--bg-elev-2: #131c30;
	--border: #1d2740;
	--border-soft: rgba(255, 255, 255, 0.06);
	--text: #e8ecf4;
	--text-dim: #9ba8c1;
	--text-mute: #6b7891;
	--accent: #ffd300;
	--accent-glow: rgba(255, 211, 0, 0.32);
	--accent-2: #4cc9f0;
	--accent-yellow: #ffd300;
	--font-display: 'DM Sans', system-ui, sans-serif;
	--font-body: 'Inter', system-ui, sans-serif;
	--font-mono: 'JetBrains Mono', ui-monospace, monospace;
	--container: 1280px;
	--container-narrow: 960px;
	--gutter: clamp(1.25rem, 3vw, 2.5rem);
	--section-y: clamp(5rem, 10vw, 9rem);
	--ease: cubic-bezier(0.22, 1, 0.36, 1)
}
*,
*::before,
*::after {
	box-sizing: border-box
}
html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth
}
body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font-family: var(--font-body);
	font-size: 17px;
	line-height: 1.65;
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden
}
img,
video,
svg {
	max-width: 100%;
	height: auto;
	display: block
}
button {
	font: inherit;
	color: inherit;
	background: none;
	border: 0;
	cursor: pointer
}
a {
	color: var(--accent);
	text-decoration: none;
	transition: color .2s var(--ease)
}
a:hover {
	color: var(--text)
}
::selection {
	background: var(--accent);
	color: var(--bg)
}
body::before {
	content: '';
	position: fixed;
	inset: 0;
	pointer-events: none;
	background: radial-gradient(ellipse at top, rgba(76, 201, 240, 0.04), transparent 60%), radial-gradient(ellipse at bottom, rgba(255, 211, 0, 0.04), transparent 60%);
	z-index: 0
}
#starfield {
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	pointer-events: none
}
h1,
h2,
h3,
h4,
h5 {
	font-family: var(--font-display);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.02em;
	margin: 0 0 0.5em;
	color: var(--text)
}
h1 {
	font-size: clamp(2.5rem, 6vw, 5rem);
	font-weight: 700
}
h2 {
	font-size: clamp(2rem, 4vw, 3.25rem);
	font-weight: 700
}
h3 {
	font-size: clamp(1.4rem, 2.5vw, 2rem)
}
h4 {
	font-size: 1.25rem
}
p {
	margin: 0 0 1em;
	color: var(--text-dim)
}
strong {
	color: var(--text);
	font-weight: 600
}
em {
	font-style: italic
}
.eyebrow {
	font-family: var(--font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--accent);
	font-weight: 500;
	display: inline-block;
	margin-bottom: 1.25rem
}
.eyebrow::before {
	content: '';
	display: inline-block;
	width: 1.5rem;
	height: 1px;
	background: var(--accent);
	vertical-align: middle;
	margin-right: 0.75rem;
	transform: translateY(-2px)
}
.container {
	width: 100%;
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 var(--gutter)
}
section.section {
	position: relative;
	padding: var(--section-y) 0;
	z-index: 1
}
section.section+section.section {
	border-top: 1px solid var(--border-soft)
}
.section-header {
	max-width: 850px;
	margin: 0 0 4rem
}

.header-asterisk {
	font-size: 0.7em;
	vertical-align: 0.4em;
	margin-left: 0.05em;
	color: var(--text-dim);
	font-weight: 400;
}
.header-footnote {
	margin: 0.5rem 0 0;
	font-family: 'EB Garamond', Georgia, 'Times New Roman', serif;
	font-style: italic;
	font-size: 1.25rem;
	color: var(--text-dim);
	letter-spacing: 0.005em;
}
.header-footnote-mark {
	margin-right: 0.15em;
	font-style: normal;
	color: var(--text-mute);
}
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	padding: 1.5rem 0;
	transition: background .3s var(--ease), backdrop-filter .3s var(--ease), padding .3s var(--ease), border-color .3s var(--ease);
	border-bottom: 1px solid transparent
}
.site-header.is-scrolled {
	background: rgba(7, 9, 15, 0.78);
	backdrop-filter: saturate(180%) blur(14px);
	-webkit-backdrop-filter: saturate(180%) blur(14px);
	border-bottom-color: var(--border-soft);
	padding: 1rem 0
}
.site-header .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem
}
.brand {
	display: flex;
	align-items: center;
	gap: 0.75rem
}
.brand img {
	height: 2rem;
	width: auto;
	display: block
}
.primary-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 0.25rem
}
.primary-nav a {
	color: var(--text-dim);
	font-family: var(--font-mono);
	font-size: 0.92rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 500;
	padding: 0.7rem 1.15rem;
	border-radius: 6px;
	transition: color .2s var(--ease), background .2s var(--ease)
}
.primary-nav a:hover {
	color: var(--text);
	background: var(--bg-elev)
}
.primary-nav a.is-active {
	color: var(--accent)
}
.primary-nav a.is-active::before {
	content: '>';
	color: var(--accent)
}
.nav-toggle {
	display: none;
	width: 40px;
	height: 40px;
	color: var(--text);
	border-radius: 6px
}
.nav-toggle:hover {
	background: var(--bg-elev)
}
.nav-toggle .bar {
	display: block;
	width: 22px;
	height: 1.5px;
	margin: 5px auto;
	background: currentColor;
	transition: transform .25s var(--ease), opacity .25s var(--ease)
}
.nav-toggle[aria-expanded="true"] .bar:nth-child(1) {
	transform: translateY(6.5px) rotate(45deg)
}
.nav-toggle[aria-expanded="true"] .bar:nth-child(2) {
	opacity: 0
}
.nav-toggle[aria-expanded="true"] .bar:nth-child(3) {
	transform: translateY(-6.5px) rotate(-45deg)
}
@media (max-width:860px) {
	.nav-toggle {
		display: block
	}
	.primary-nav {
		position: fixed;
		inset: 64px 0 auto 0;
		background: rgba(7, 9, 15, 0.96);
		backdrop-filter: blur(14px);
		-webkit-backdrop-filter: blur(14px);
		border-bottom: 1px solid var(--border-soft);
		max-height: 0;
		overflow: hidden;
		transition: max-height .35s var(--ease)
	}
	.primary-nav.is-open {
		max-height: 80vh
	}
	.primary-nav ul {
		flex-direction: column;
		padding: 1rem var(--gutter) 2rem;
		gap: 0
	}
	.primary-nav a {
		display: block;
		padding: 1rem 0;
		border-bottom: 1px solid var(--border-soft);
		font-size: 0.95rem
	}
}
.hero {
	position: relative;
	min-height: 100vh;
	min-height: 100svh;
	display: flex;
	align-items: center;
	overflow: hidden;
	color: var(--text)
}
.hero-media {
	position: absolute;
	inset: 0;
	z-index: 0;
	background-color: var(--bg);
	background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='49' viewBox='0 0 28 49'%3E%3Cg fill='%23ffffff' fill-opacity='0.05' fill-rule='evenodd'%3E%3Cpath d='M13.99 9.25l13 7.5v15l-13 7.5L1 31.75v-15l12.99-7.5zM3 17.9v12.7l10.99 6.34 11-6.35V17.9l-11-6.34L3 17.9zM0 15l12.98-7.5V0h-2v6.35L0 12.69v2.3zm0 18.5L12.98 41v8h-2v-6.85L0 35.81v-2.3zM15 0v7.5L27.99 15H28v-2.31h-.01L17 6.35V0h-2zm0 49v-8l12.99-7.5H28v2.3h-.01L17 42.15V49h-2z'/%3E%3C/g%3E%3C/svg%3E");
	background-size: 56px 98px
}
.hero-bg-stack {
	position: absolute;
	left: 62%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 100vmin;
	height: 100vmin;
	pointer-events: none
}
.hero-diffraction {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	overflow: visible
}
.hero-lattice {
	position: absolute;
	width: 72%;
	height: 72%;
	left: 65%;
	top: 50%;
	transform: translate(-50%, -50%);
	display: block;
	will-change: transform;
	pointer-events: auto
}
.hero-diffraction-pattern {

	opacity: 0.6;
}
.hero-diffraction-pattern circle {
	fill: none;
	stroke: rgba(255, 211, 0, 0.32);
	stroke-width: 1.4
}
.hero-diffraction-pattern circle:nth-child(1) {
	stroke: rgba(255, 211, 0, 0.45);
	stroke-width: 1.6;
	animation-delay: 0s
}
.hero-diffraction-pattern circle:nth-child(2) {
	stroke: rgba(255, 211, 0, 0.48);
	stroke-width: 1.7;
	animation-delay: 0.45s
}
.hero-diffraction-pattern circle:nth-child(3) {
	stroke: rgba(255, 211, 0, 0.80);
	stroke-width: 2.6;
	animation-delay: 0.9s
}
.hero-diffraction-pattern circle:nth-child(4) {
	stroke: rgba(255, 211, 0, 0.45);
	stroke-width: 1.5;
	animation-delay: 1.35s
}
.hero-diffraction-pattern circle:nth-child(5) {
	stroke: rgba(255, 211, 0, 0.45);
	stroke-width: 1.5;
	animation-delay: 1.8s
}
.hero-diffraction-pattern circle:nth-child(6) {
	stroke: rgba(255, 211, 0, 0.44);
	stroke-width: 1.5;
	animation-delay: 2.25s
}
.hero-diffraction-pattern circle:nth-child(7) {
	stroke: rgba(255, 211, 0, 0.28);
	stroke-width: 1.0;
	animation-delay: 2.7s
}
.hero-diffraction-pattern circle:nth-child(8) {
	stroke: rgba(255, 211, 0, 0.43);
	stroke-width: 1.5;
	animation-delay: 3.15s
}
.hero-diffraction-pattern circle:nth-child(9) {
	stroke: rgba(255, 211, 0, 0.41);
	stroke-width: 1.4;
	animation-delay: 3.6s
}
.hero-diffraction-pattern circle:nth-child(10) {
	stroke: rgba(255, 211, 0, 0.30);
	stroke-width: 1.1;
	animation-delay: 4.05s
}
.hero-diffraction-pattern circle:nth-child(11) {
	stroke: rgba(255, 211, 0, 0.32);
	stroke-width: 1.2;
	animation-delay: 4.5s
}
.hero-diffraction-pattern circle:nth-child(12) {
	stroke: rgba(255, 211, 0, 0.28);
	stroke-width: 1.0;
	animation-delay: 4.95s
}
.hero-diffraction-pattern circle:nth-child(13) {
	stroke: rgba(255, 211, 0, 0.36);
	stroke-width: 1.3;
	animation-delay: 5.4s
}
.hero-diffraction-pattern circle:nth-child(14) {
	stroke: rgba(255, 211, 0, 0.28);
	stroke-width: 1.0;
	animation-delay: 5.85s
}
.hero-diffraction-pattern circle:nth-child(15) {
	stroke: rgba(255, 211, 0, 0.43);
	stroke-width: 1.5;
	animation-delay: 6.3s
}
.hero-diffraction-pattern circle:nth-child(16) {
	stroke: rgba(255, 211, 0, 0.40);
	stroke-width: 1.4;
	animation-delay: 6.75s
}
.hero-diffraction-pattern circle:nth-child(17) {
	stroke: rgba(255, 211, 0, 0.36);
	stroke-width: 1.3;
	animation-delay: 7.2s
}
.hero-diffraction-pattern circle:nth-child(18) {
	stroke: rgba(255, 211, 0, 0.38);
	stroke-width: 1.3;
	animation-delay: 7.65s
}
.hero-diffraction-pattern circle:nth-child(19) {
	stroke: rgba(255, 211, 0, 0.29);
	stroke-width: 1.1;
	animation-delay: 8.1s
}
.hero-diffraction-pattern circle:nth-child(20) {
	stroke: rgba(255, 211, 0, 0.37);
	stroke-width: 1.3;
	animation-delay: 8.55s
}
@keyframes ringPulse {
	0%, 70%, 100% {
		opacity: 0.65
	}
	35% {
		opacity: 1
	}
}
.hero-media::after {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(90deg, rgba(7, 9, 15, 0.78) 0%, rgba(7, 9, 15, 0.4) 35%, transparent 60%), linear-gradient(180deg, rgba(7, 9, 15, 0.5) 0%, transparent 35%, rgba(7, 9, 15, 0.95) 100%), radial-gradient(ellipse at 75% 50%, rgba(255, 211, 0, 0.10), transparent 55%)
}
.hero-content {
	position: relative;
	z-index: 1;
	width: 100%;
	padding-top: 6rem;
	padding-bottom: 4rem;
	pointer-events: none
}
.hero-content>* {
	pointer-events: auto
}
.hero-tag {
	font-family: var(--font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--accent);
	margin-bottom: 1.5rem;
	display: flex;
	align-items: center;
	gap: 0.75rem
}
.hero-tag::before {
	content: '';
	width: 8px;
	height: 8px;
	background: var(--accent);
	border-radius: 50%;
	box-shadow: 0 0 12px var(--accent-glow), 0 0 24px var(--accent-glow);
	animation: pulse 2.4s ease-in-out infinite
}
@keyframes pulse {
	0%, 100% {
		opacity: 1;
		transform: scale(1)
	}
	50% {
		opacity: 0.55;
		transform: scale(0.85)
	}
}
.hero h1 {
	max-width: 18ch;
	margin-bottom: 1.5rem;
	font-weight: 700;
	letter-spacing: -0.035em
}
.hero h1 .accent {
	color: var(--accent)
}
.hero-diamond {
	color: var(--accent);
	font-size: 0.26em;
	margin-left: 0.55em;
	vertical-align: 0.12em
}
.hero-lede {
	max-width: 56ch;
	font-size: clamp(1.05rem, 1.4vw, 1.25rem);
	color: var(--text-dim);
	margin-bottom: 2.5rem
}
.hero-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 2rem;
	font-family: var(--font-mono);
	font-size: 0.78rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-mute)
}
.hero-meta span {
	display: flex;
	align-items: center;
	gap: 0.5rem
}
.hero-meta span::before {
	content: '';
	width: 4px;
	height: 4px;
	background: var(--accent);
	border-radius: 50%
}
.hero-cta {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	font-family: var(--font-mono);
	font-size: 0.78rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--text);
	padding: 1rem 1.75rem;
	border: 1px solid var(--border);
	border-radius: 999px;
	margin-top: 0.5rem;
	transition: all .25s var(--ease);
	background: rgba(255, 255, 255, 0.02)
}
.hero-cta:hover {
	background: var(--accent);
	color: var(--bg);
	border-color: var(--accent);
	transform: translateY(-2px)
}
.hero-cta i {
	transition: transform .25s var(--ease)
}
.hero-cta:hover i {
	transform: translateX(4px)
}
.scroll-hint {
	position: absolute;
	bottom: 2rem;
	left: 50%;
	transform: translateX(-50%);
	font-family: var(--font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--text-mute);
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem
}
.scroll-hint::after {
	content: '';
	width: 1px;
	height: 32px;
	background: linear-gradient(to bottom, var(--text-mute), transparent);
	animation: scrollHint 2s ease-in-out infinite
}
@keyframes scrollHint {
	0%, 100% {
		transform: scaleY(1);
		transform-origin: top;
		opacity: 0.6
	}
	50% {
		transform: scaleY(0.4);
		opacity: 1
	}
}
.group-photo {
	position: relative;
	margin: 0 auto 2.5rem;
	max-width: 1100px;
	aspect-ratio: 5 / 3;
	border: 1px solid var(--border);
	border-radius: 4px;
	overflow: hidden
}
.group-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center bottom;
	transform: scale(1.08);
	will-change: transform
}
.group-photo-caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 5rem 2rem 1.75rem;
	background: linear-gradient(180deg, transparent 0%, rgba(7, 9, 15, 0.85) 70%);
	pointer-events: none;
	margin: 0
}
.group-photo-caption .eyebrow {
	margin-bottom: 0.5rem;
	color: var(--accent)
}
.group-photo-caption p {
	margin: 0;
	color: var(--text);
	font-family: var(--font-display);
	font-size: clamp(1.05rem, 1.6vw, 1.4rem);
	font-weight: 500;
	letter-spacing: -0.01em;
	max-width: 27ch
}
.lab-stats-heading {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	max-width: 1200px;
	margin: 0 auto 1.25rem;
	font-family: var(--font-mono);
	font-size: 0.85rem;
	font-weight: 500;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--accent)
}
.lab-stats-heading::before,
.lab-stats-heading::after {
	content: '';
	flex: 1;
	height: 1px;
	max-width: 240px
}
.lab-stats-heading::before {
	background: linear-gradient(to right, transparent, var(--border))
}
.lab-stats-heading::after {
	background: linear-gradient(to right, var(--border), transparent)
}
.lab-stats {
	list-style: none;
	margin: 0 auto 5rem;
	padding: 0;
	max-width: 1200px;
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	border-top: 1px solid var(--border);
	border-bottom: 1px solid var(--border)
}
.stat-icon {
	display: block;
	color: var(--text-mute);
	font-size: 2rem;
	margin-bottom: 0.85rem;
	transition: color .25s var(--ease)
}
.lab-stats li:hover .stat-icon {
	color: var(--accent)
}
.lab-stats li {
	padding: 1.75rem 1.5rem;
	position: relative;
	text-align: center
}
.lab-stats li+li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 25%;
	bottom: 25%;
	width: 1px;
	background: var(--border-soft)
}
.stat-value {
	display: block;
	font-family: var(--font-display);
	font-size: clamp(2rem, 4vw, 2.75rem);
	font-weight: 700;
	color: var(--accent);
	letter-spacing: -0.02em;
	line-height: 1;
	margin-bottom: 0.5rem
}
.stat-label {
	display: block;
	font-family: var(--font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--text-dim)
}
@media (max-width:900px) {
	.lab-stats {
		grid-template-columns: repeat(2, 1fr)
	}
	.lab-stats li: nth-child(3): : before, .lab-stats li: nth-child(5): : before {
		display: none
	}
	.lab-stats li: nth-child(n+3) {
		border-top: 1px solid var(--border-soft)
	}
	.lab-stats li: nth-child(5) {
		grid-column: 1 / -1
	}
}
@media (max-width:480px) {
	.lab-stats {
		grid-template-columns: 1fr
	}
	.lab-stats li+li: : before {
		display: none
	}
	.lab-stats li+li {
		border-top: 1px solid var(--border-soft)
	}
}
.research-grid-wrap {
	width: 100%;
	max-width: 1500px;
	margin: 0 auto;
	padding: 0 var(--gutter)
}
.research-grid {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(280px, 380px);
	gap: 2.5rem;
	overflow-x: auto;
	overflow-y: visible;
	scroll-snap-type: x mandatory;
	padding-bottom: 1.5rem;
	scrollbar-width: thin;
	scrollbar-color: var(--border) transparent
}
.research-grid::-webkit-scrollbar {
	height: 8px
}
.research-grid::-webkit-scrollbar-track {
	background: transparent
}
.research-grid::-webkit-scrollbar-thumb {
	background: var(--border);
	border-radius: 4px
}
.research-grid::-webkit-scrollbar-thumb:hover {
	background: var(--text-mute)
}
@media (min-width:1100px) {
	.research-grid {
		grid-auto-flow: row;
		grid-template-columns: repeat(3, 1fr);
		grid-auto-columns: auto;
		overflow-x: visible;
		scroll-snap-type: none;
		padding-bottom: 0
	}
}
.research-item {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	background: transparent;
	border: 0;
	border-radius: 0;
	overflow: visible;
	transition: transform .4s var(--ease);
	scroll-snap-align: center
}
.research-item:hover {
	transform: translateY(-3px)
}
.research-item-image {
	position: relative;
	width: 100%;
	aspect-ratio: 3 / 4;
	margin: 0;
	overflow: hidden;
	background: var(--bg-elev);
	border: 1px solid var(--border);
	border-radius: 4px;
	transition: border-color .4s var(--ease), box-shadow .4s var(--ease)
}
.research-item:hover .research-item-image {
	border-color: var(--accent);
	box-shadow: 0 0 28px rgba(255, 211, 0, 0.18)
}
.research-item-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center
}
.research-item-content {
	padding: 0;
	text-align: left
}
.research-tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.3rem 0;
	font-family: var(--font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--accent-2);
	margin-bottom: 0.75rem
}
.research-tags::before {
	content: '';
	display: inline-block;
	width: 1.25rem;
	height: 1px;
	background: var(--accent);
	margin-right: 0.85rem;
	flex-shrink: 0
}
.research-tags span {
	white-space: nowrap;
	display: inline-flex;
	align-items: center
}
.research-tags span:not(:last-child)::after {
	content: '';
	display: inline-block;
	width: 5px;
	height: 5px;
	background: var(--accent);
	transform: rotate(45deg);
	margin: 0 0.85rem;
	flex-shrink: 0
}
.research-item h3 {
	font-size: clamp(1.35rem, 1.8vw, 1.75rem);
	letter-spacing: -0.02em;
	line-height: 1.15;
	margin-bottom: 0.75rem
}
.research-item p {
	color: var(--text-dim);
	font-size: 0.95rem;
	line-height: 1.6;
	margin-bottom: 0
}

section.section.people-section {
	padding-bottom: 0;
	position: relative;
	overflow: hidden
}

section.section + section.section.people-section {
	border-top: none;
}
.section-divider {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	max-width: 600px;
	margin: 3.5rem auto 2.5rem;
	padding: 0 var(--gutter)
}
.section-divider::before,
.section-divider::after {
	content: '';
	flex: 1;
	height: 1px;
	max-width: 220px;
	background: linear-gradient(to right, transparent, var(--border), transparent)
}
.section-divider-diamond {
	width: 8px;
	height: 8px;
	background: var(--accent);
	transform: rotate(45deg);
	flex-shrink: 0;
	box-shadow: 0 0 8px rgba(255, 211, 0, 0.4)
}
.section-divider-label {
	font-family: var(--font-mono);
	font-size: 1.75rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--accent);
	flex-shrink: 0;
	line-height: 1
}
.people-grid-wrap {
	width: 100%;
	max-width: 1416px;
	margin: 0 auto;
	padding: 4rem var(--gutter) 0;
	position: relative;
	z-index: 1
}
.people-grid-wrap::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: calc(-1 * var(--section-y));
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;
	pointer-events: none;
	z-index: -1
}
.people-grid-wrap>.people-grid,
.people-grid-wrap>.alumni-toggle {
	position: relative;
	z-index: 1
}
.people-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 2rem
}
.people-grid .is-alumni-card {
	display: none
}
.people-grid.show-alumni .is-alumni-card {
	display: block
}
.people-grid.show-alumni .is-alumni-card,
.people-grid.show-alumni .alumni-toggle {
	animation: alumniReveal 0.55s cubic-bezier(0.22, 0.61, 0.36, 1) backwards;
	animation-delay: calc(var(--reveal-i, 0) * 70ms)
}
@keyframes alumniReveal {
	from {
		opacity: 0;
		transform: translate(var(--shift-x, 0), var(--shift-y, 0)) translateY(18px) scale(0.97) rotate(var(--card-tilt, 0deg))
	}
	to {
		opacity: 1;
		transform: translate(var(--shift-x, 0), var(--shift-y, 0)) translateY(0) scale(1) rotate(var(--card-tilt, 0deg))
	}
}
.alumni-toggle {
	width: 310px;
	aspect-ratio: 5 / 7;
	border-radius: 10px;
	padding: 5px;
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.22) 30%, rgba(255, 255, 255, 0.22) 70%, rgba(255, 255, 255, 0.65) 100%);
	box-shadow: 0 30px 60px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(0, 0, 0, 0.6), 0 0 0 3px rgba(255, 255, 255, 0.40), 0 0 30px rgba(255, 255, 255, 0.20);
	transform: translate(var(--shift-x, 0), var(--shift-y, 0)) rotate(var(--card-tilt, 0deg));
	transition: transform .45s var(--ease), box-shadow .45s var(--ease)
}

.alumni-toggle.reveal {
	will-change: auto;
}
.alumni-toggle:hover,
.alumni-toggle.is-in:hover {
	transform: translate(var(--shift-x, 0), var(--shift-y, 0)) rotate(calc(var(--card-tilt, 0deg) - 1deg)) scale(1.03);
	box-shadow: 0 36px 72px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(0, 0, 0, 0.6), 0 0 0 3px rgba(255, 255, 255, 0.55), 0 0 44px rgba(255, 255, 255, 0.30)
}

.alumni-toggle.reveal.is-in:not(:hover):not(.is-dismissed) {
	transform: translate(var(--shift-x, 0), var(--shift-y, 0)) rotate(var(--card-tilt, 0deg));
}

.alumni-toggle.is-in.is-dismissed,
.alumni-toggle.is-dismissed {
	transition: opacity 0.5s var(--ease), transform 0.5s var(--ease);
	opacity: 0;
	transform: translate(var(--shift-x, 0), var(--shift-y, 0)) rotate(var(--card-tilt, 0deg)) scale(0.92);
	pointer-events: none;
}
.alumni-toggle-summary {
	cursor: pointer;
	width: 100%;
	height: 100%;
	border: 0;
	border-radius: 7px;
	background-color: #000000;
	background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='49' viewBox='0 0 28 49'%3E%3Cg fill='%23ffffff' fill-opacity='0.07' fill-rule='evenodd'%3E%3Cpath d='M13.99 9.25l13 7.5v15l-13 7.5L1 31.75v-15l12.99-7.5zM3 17.9v12.7l10.99 6.34 11-6.35V17.9l-11-6.34L3 17.9zM0 15l12.98-7.5V0h-2v6.35L0 12.69v2.3zm0 18.5L12.98 41v8h-2v-6.85L0 35.81v-2.3zM15 0v7.5L27.99 15H28v-2.31h-.01L17 6.35V0h-2zm0 49v-8l12.99-7.5H28v2.3h-.01L17 42.15V49h-2z'/%3E%3C/g%3E%3C/svg%3E");
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.85rem;
	color: var(--text);
	font: inherit;
	transition: background-color .2s var(--ease);
	padding: 1.5rem;
	text-align: center;
	position: relative
}
.tc-frame .tc-art-shine,
.alumni-toggle-corner {
	pointer-events: none
}
.alumni-toggle-corner {
	position: absolute;
	width: 38px;
	height: auto;
	opacity: 0.32;
	mix-blend-mode: luminosity;
	z-index: 0
}
.alumni-toggle-corner--tl {
	top: 14px;
	left: 14px
}
.alumni-toggle-corner--tr {
	top: 14px;
	right: 14px
}
.alumni-toggle-corner--bl {
	bottom: 14px;
	left: 14px;
	transform: rotate(180deg)
}
.alumni-toggle-corner--br {
	bottom: 14px;
	right: 14px;
	transform: rotate(180deg)
}
.alumni-toggle-icon,
.alumni-toggle-label {
	position: relative;
	z-index: 1
}
.alumni-toggle-icon {
	font-size: 2.4rem;
	line-height: 1;
	color: var(--text);
}
.alumni-toggle-label {
	font-family: 'Michroma', var(--font-display);
	font-size: 0.95rem;
	font-weight: 400;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--text)
}
.trainer-card {
	width: 310px;
	aspect-ratio: 5 / 7;
	border-radius: 10px;
	padding: 5px;
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.22) 30%, rgba(255, 255, 255, 0.22) 70%, rgba(255, 255, 255, 0.65) 100%);
	box-shadow: 0 30px 60px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(0, 0, 0, 0.6), 0 0 0 3px rgba(255, 255, 255, 0.40), 0 0 30px rgba(255, 255, 255, 0.20);
	transform: translate(var(--shift-x, 0), var(--shift-y, 0)) rotate(var(--card-tilt, 0deg));
	transition: transform .45s var(--ease), box-shadow .45s var(--ease);
	position: relative;
	color: var(--text);
	overflow: hidden
}
.trainer-card::before {
	content: '';
	position: absolute;
	top: -25%;
	left: -40%;
	width: 28%;
	height: 150%;
	pointer-events: none;
	z-index: 7;
	background: linear-gradient( to right, transparent 0%, rgba(255, 255, 255, 0.04) 35%, rgba(255, 255, 255, 0.22) 50%, rgba(255, 255, 255, 0.04) 65%, transparent 100%);
	transform: translateX(0) rotate(18deg);
	will-change: transform
}
.trainer-card:hover::before {
	animation: card-sheen 1.1s cubic-bezier(0.22, 0.61, 0.36, 1)
}

.trainer-card::after {
	content: '';
	position: absolute;
	top: 25%;
	left: 6px;
	right: 6px;
	height: 50px;
	transform: translateY(-50%);
	pointer-events: none;
	z-index: 0;
	background: none;

	-webkit-mask-image: linear-gradient(to right,
		black 0,
		black 12px,
		transparent 12px,
		transparent calc(100% - 12px),
		black calc(100% - 12px),
		black 100%);
	mask-image: linear-gradient(to right,
		black 0,
		black 12px,
		transparent 12px,
		transparent calc(100% - 12px),
		black calc(100% - 12px),
		black 100%);
}

.trainer-card.tc-undergrad::after {
	background: linear-gradient(
		180deg,
		transparent 42%,
		#ffffff 42%,
		#ffffff 58%,
		transparent 58%
	);
}

.trainer-card.tc-grad::after {
	background: linear-gradient(
		180deg,
		transparent 22%,
		#ffffff 22%,
		#ffffff 38%,
		transparent 38%,
		transparent 62%,
		#ffffff 62%,
		#ffffff 78%,
		transparent 78%
	);
}

.trainer-card.tc-pi::after,
.trainer-card.tc-grad.tc-alum::after {
	background: linear-gradient(
		180deg,
		transparent 8%,
		#ffffff 8%,
		#ffffff 24%,
		transparent 24%,
		transparent 42%,
		#ffffff 42%,
		#ffffff 58%,
		transparent 58%,
		transparent 76%,
		#ffffff 76%,
		#ffffff 92%,
		transparent 92%
	);
}
@keyframes card-sheen {
	0% {
		transform: translateX(0) rotate(18deg)
	}
	100% {
		transform: translateX(620%) rotate(18deg)
	}
}
.trainer-card:hover,
.trainer-card.is-in:hover {
	transform: translate(var(--shift-x, 0), var(--shift-y, 0)) rotate(calc(var(--card-tilt, 0deg) - 1deg)) scale(1.03);
	box-shadow: 0 36px 72px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(0, 0, 0, 0.6), 0 0 0 3px rgba(255, 255, 255, 0.55), 0 0 44px rgba(255, 255, 255, 0.30)
}

.trainer-card.reveal.is-in:not(:hover) {
	transform: translate(var(--shift-x, 0), var(--shift-y, 0)) rotate(var(--card-tilt, 0deg));
}
.tc-frame {
	position: relative;
	height: 100%;
	border-radius: 7px;
	padding: 14px;
	background: var(--bg-elev);
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	overflow: hidden
}
.tc-frame::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(120% 60% at 50% 0%, rgba(255, 255, 255, 0.10), transparent 60%);
	pointer-events: none;
	z-index: 0
}
.tc-frame>* {
	position: relative;
	z-index: 1
}
.tc-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--font-mono);
	font-size: 0.62rem;
	letter-spacing: 0.16em;
	text-transform: uppercase
}
.tc-category {
	color: rgba(255, 255, 255, 0.95);
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis
}
.tc-category i {
	font-size: 0.75rem;
	flex-shrink: 0
}
.tc-number {
	color: var(--text-dim);
	letter-spacing: 0.1em;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	flex-shrink: 0
}
.tc-number i {
	font-size: 0.7rem
}
.tc-art {
	position: relative;
	width: 100%;
	aspect-ratio: 5 / 4;
	border-radius: 3px;
	overflow: hidden;
	background: #0a0f1c;
	box-shadow: inset 0 0 0 1px var(--border), 0 0 0 1px rgba(255, 255, 255, 0.4)
}
.tc-art img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--focus, center)
}
.tc-art-shine {
	position: absolute;
	inset: 0;
	background: linear-gradient(115deg, transparent 40%, rgba(255, 211, 0, 0.10) 50%, transparent 60%);
	pointer-events: none
}
.tc-badges {
	display: flex;
	flex-direction: row;
	justify-content: center;
	gap: 6px;
	margin-top: auto;
	padding-top: 0.25rem
}
.tc-badge-wrap {
	position: relative;
	display: inline-flex;
	cursor: help;
	filter: drop-shadow(0 0 7px var(--badge-glow, rgba(255, 255, 255, 0.5))) drop-shadow(0 2px 3px rgba(0, 0, 0, 0.55));
	transition: filter .2s var(--ease)
}
.tc-badge-wrap:has(>.tc-badge--prospectus),
.tc-badge-wrap:has(>.tc-badge--candidacy),
.tc-badge-wrap:has(>.tc-badge--candidacy-partial) {
	--badge-glow: rgba(56, 189, 248, 0.55)
}
.tc-badge-wrap:has(>.tc-badge--orp) {
	--badge-glow: rgba(244, 114, 182, 0.55)
}
.tc-badge-wrap:has(>.tc-badge--paper) {
	--badge-glow: rgba(252, 211, 77, 0.55)
}
.tc-badge-wrap:has(>.tc-badge--coauthor) {
	--badge-glow: rgba(252, 211, 77, 0.55)
}
.tc-badge-wrap:has(>.tc-badge--poster-award) {
	--badge-glow: rgba(239, 68, 68, 0.55)
}
.tc-badge-wrap:has(>.tc-badge--thesis) {
	--badge-glow: rgba(192, 132, 252, 0.55)
}
.tc-badge-wrap:has(>.tc-badge--mentor-phd) {
	--badge-glow: rgba(192, 132, 252, 0.55)
}
.tc-badge-wrap:has(>.tc-badge--tenured) {
	--badge-glow: rgba(96, 165, 250, 0.55)
}
.tc-badge-wrap:has(>.tc-badge--grant) {
	--badge-glow: rgba(20, 184, 166, 0.55)
}
.tc-badge-wrap:has(>.tc-badge--beamtime-rookie) {
	--badge-glow: rgba(203, 213, 225, 0.55)
}
.tc-badge-wrap:has(>.tc-badge--beamtime-hero) {
	--badge-glow: rgba(251, 146, 60, 0.55)
}
.tc-badge-wrap:has(>.tc-badge--beamtime-luminary) {
	--badge-glow: rgba(52, 211, 153, 0.55)
}
.tc-badge-wrap:has(>.tc-badge--beamtime-beacon) {
	--badge-glow: rgba(186, 230, 253, 0.55)
}

.tc-badge {
	width: 26px;
	height: 30px;
	clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: rgba(255, 255, 255, 0.95);
	font-size: 12px;
	position: relative;
	transition: transform .2s var(--ease)
}
.tc-badge::after {
	content: '';
	position: absolute;
	top: 5px;
	left: 8px;
	width: 6px;
	height: 3px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.55);
	filter: blur(0.4px);
	pointer-events: none;
	transform: rotate(-30deg)
}
.tc-badge-wrap:hover .tc-badge {
	transform: scale(1.1);
	filter: drop-shadow(0 0 12px var(--badge-glow, rgba(255, 255, 255, 0.6))) drop-shadow(0 4px 6px rgba(0, 0, 0, 0.55));
}
.tc-badge i {
	line-height: 1;
	position: relative;
	z-index: 1
}
.tc-badge--prospectus,
.tc-badge--candidacy {
	background: radial-gradient(ellipse 60% 28% at 50% 80%, rgba(186, 230, 253, 0.40), transparent 75%), radial-gradient(circle at 50% 35%, #f0f9ff 0%, #38bdf8 18%, #075985 65%, #0c2438 92%, #050b1a 100%);
	--badge-glow: rgba(56, 189, 248, 0.95)
}
.tc-badge--candidacy-partial {
	opacity: 0.45;
	background: radial-gradient(ellipse 60% 28% at 50% 80%, rgba(186, 230, 253, 0.40), transparent 75%), radial-gradient(circle at 50% 35%, #f0f9ff 0%, #38bdf8 18%, #075985 65%, #0c2438 92%, #050b1a 100%);
	--badge-glow: rgba(56, 189, 248, 0.95)
}
.tc-badge--orp {
	background: radial-gradient(ellipse 60% 28% at 50% 80%, rgba(252, 231, 243, 0.40), transparent 75%), radial-gradient(circle at 50% 35%, #fff1f2 0%, #f472b6 18%, #9d174d 65%, #4c0519 92%, #1f0510 100%);
	--badge-glow: rgba(244, 114, 182, 0.95)
}
.tc-badge--paper,
.tc-badge--coauthor {
	background: radial-gradient(ellipse 60% 28% at 50% 80%, rgba(254, 243, 199, 0.40), transparent 75%), radial-gradient(circle at 50% 35%, #fffbeb 0%, #fcd34d 18%, #92400e 65%, #451a03 92%, #1c0a01 100%);
	--badge-glow: rgba(252, 211, 77, 0.95)
}
.tc-badge--thesis,
.tc-badge--mentor-phd {
	background: radial-gradient(ellipse 60% 28% at 50% 80%, rgba(233, 213, 255, 0.40), transparent 75%), radial-gradient(circle at 50% 35%, #faf5ff 0%, #c084fc 18%, #6b21a8 65%, #2e1065 92%, #14062f 100%);
	--badge-glow: rgba(192, 132, 252, 0.95)
}
.tc-badge--tenured {
	background: radial-gradient(ellipse 60% 28% at 50% 80%, rgba(219, 234, 254, 0.40), transparent 75%), radial-gradient(circle at 50% 35%, #eff6ff 0%, #60a5fa 18%, #1e40af 65%, #0a1735 92%, #03081a 100%);
	--badge-glow: rgba(96, 165, 250, 0.95)
}
.tc-badge--grant {
	background: radial-gradient(ellipse 60% 28% at 50% 80%, rgba(204, 251, 241, 0.40), transparent 75%), radial-gradient(circle at 50% 35%, #f0fdfa 0%, #14b8a6 18%, #115e59 65%, #042f2c 92%, #001310 100%);
	--badge-glow: rgba(20, 184, 166, 0.95)
}
.tc-badge--beamtime-rookie {
	background: radial-gradient(ellipse 60% 28% at 50% 80%, rgba(241, 245, 249, 0.40), transparent 75%), radial-gradient(circle at 50% 35%, #f8fafc 0%, #cbd5e1 18%, #475569 65%, #1e293b 92%, #020617 100%);
	--badge-glow: rgba(203, 213, 225, 0.95)
}
.tc-badge--beamtime-hero {
	background: radial-gradient(ellipse 60% 28% at 50% 80%, rgba(254, 215, 170, 0.40), transparent 75%), radial-gradient(circle at 50% 35%, #fff7ed 0%, #fb923c 18%, #9a3412 65%, #431407 92%, #1c0701 100%);
	--badge-glow: rgba(251, 146, 60, 0.95)
}
.tc-badge--beamtime-luminary {
	background: radial-gradient(ellipse 60% 28% at 50% 80%, rgba(167, 243, 208, 0.40), transparent 75%), radial-gradient(circle at 50% 35%, #ecfdf5 0%, #34d399 18%, #065f46 65%, #022c22 92%, #02110b 100%);
	--badge-glow: rgba(52, 211, 153, 0.95)
}
.tc-badge--poster-award {
	background: radial-gradient(ellipse 60% 28% at 50% 80%, rgba(254, 226, 226, 0.40), transparent 75%), radial-gradient(circle at 50% 35%, #fef2f2 0%, #ef4444 18%, #991b1b 65%, #450a0a 92%, #1c0404 100%);
	--badge-glow: rgba(239, 68, 68, 0.95)
}
.tc-badge--beamtime-beacon {
	background: radial-gradient(ellipse 60% 28% at 50% 80%, rgba(255, 255, 255, 0.45), transparent 75%), radial-gradient(circle at 50% 35%, #ffffff 0%, #f0f9ff 12%, #bae6fd 30%, #38bdf8 60%, #0c4a6e 90%, #020617 100%);
	--badge-glow: rgba(186, 230, 253, 0.95)
}
.tc-badge-wrap::before {
	content: attr(data-tip);
	position: absolute;
	bottom: calc(100% + 6px);
	left: 50%;
	transform: translateX(-50%);
	background: rgba(8, 10, 14, 0.94);
	color: #fff;
	font-family: var(--font-mono);
	font-size: 0.6rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 4px 8px;
	border-radius: 3px;
	white-space: nowrap;
	pointer-events: none;
	opacity: 0;
	transition: opacity .18s var(--ease);
	border: 1px solid rgba(255, 255, 255, 0.18);
	z-index: 12
}
.tc-badge-wrap:hover::before {
	opacity: 1
}
.tc-name-bar {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.7rem;
	padding: 0.1rem 0 0.25rem
}
.tc-name-bar::before,
.tc-name-bar::after {
	content: '';
	flex: 1;
	height: 1px
}
.tc-name-bar::before {
	background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.22))
}
.tc-name-bar::after {
	background: linear-gradient(to right, rgba(255, 255, 255, 0.22), transparent)
}
.tc-name {
	font-family: 'Exo 2', 'DM Sans', system-ui, sans-serif;
	font-size: 1.35rem;
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: 0.005em;
	color: var(--text);
	margin: 0
}
.tc-info {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	flex: 1;
	justify-content: flex-start
}
.tc-info-row {
	display: grid;
	grid-template-columns: 2.2rem 1fr;
	align-items: baseline;
	column-gap: 0.75rem;
	padding: 0.35rem 0
}
.tc-info-label {
	font-family: var(--font-mono);
	font-size: 0.58rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-dim)
}
.tc-info-value {
	font-size: 0.85rem;
	color: var(--text);
	line-height: 1.25;
	overflow-wrap: anywhere
}
.tc-info-value a {
	color: var(--accent);
	text-decoration: none;
	border-bottom: 1px dashed rgba(255, 211, 0, 0.4);
	transition: border-color .2s var(--ease)
}
.tc-info-value a:hover {
	border-bottom-color: var(--accent)
}
.tc-info-value a i {
	font-size: 0.7em;
	margin-left: 0.15rem
}
.tc-info-value em {
	font-style: italic
}
.trainer-card.tc-undergrad .tc-frame {
	background-color: #04231a;
	background-image: linear-gradient( 118deg, transparent 22%, rgba(140, 245, 195, 0.05) 38%, rgba(190, 255, 220, 0.13) 50%, rgba(140, 245, 195, 0.05) 62%, transparent 78%)
}
.trainer-card.tc-undergrad .tc-frame::after {
	content: '';
	position: absolute;
	inset: -12%;
	pointer-events: none;
	z-index: 0;
	will-change: transform, opacity;
	animation: starfield-twinkle 6s ease-in-out infinite -4s, starfield-drift 16s ease-in-out infinite alternate;
	background-image: radial-gradient(1px 1px at 83% 17%, rgba(255, 255, 255, 0.61), transparent), radial-gradient(1.5px 1.5px at 33% 31%, rgba(255, 255, 255, 0.61), transparent), radial-gradient(3.5px 3.5px at 88% 97%, rgba(255, 255, 255, 0.38), transparent), radial-gradient(1px 1px at 56% 7%, rgba(255, 255, 255, 0.38), transparent), radial-gradient(1px 1px at 31% 67%, rgba(255, 255, 255, 0.55), transparent), radial-gradient(3.5px 3.5px at 93% 86%, rgba(255, 255, 255, 0.5), transparent), radial-gradient(2px 2px at 59% 78%, rgba(255, 255, 255, 0.63), transparent), radial-gradient(2px 2px at 2% 23%, rgba(255, 255, 255, 0.47), transparent), radial-gradient(2px 2px at 21% 30%, rgba(255, 255, 255, 0.39), transparent), radial-gradient(2px 2px at 50% 15%, rgba(255, 255, 255, 0.65), transparent), radial-gradient(1px 1px at 79% 36%, rgba(255, 255, 255, 0.61), transparent), radial-gradient(2px 2px at 70% 18%, rgba(255, 255, 255, 0.38), transparent), radial-gradient(2px 2px at 39% 83%, rgba(255, 255, 255, 0.55), transparent), radial-gradient(1px 1px at 92% 11%, rgba(255, 255, 255, 0.58), transparent), radial-gradient(1.5px 1.5px at 39% 13%, rgba(255, 255, 255, 0.65), transparent), radial-gradient(3px 3px at 50% 38%, rgba(255, 255, 255, 0.57), transparent), radial-gradient(2px 2px at 48% 23%, rgba(255, 255, 255, 0.47), transparent), radial-gradient(1px 1px at 87% 37%, rgba(255, 255, 255, 0.56), transparent), radial-gradient(1.5px 1.5px at 23% 71%, rgba(255, 255, 255, 0.41), transparent), radial-gradient(3.5px 3.5px at 50% 37%, rgba(255, 255, 255, 0.43), transparent), radial-gradient(1.5px 1.5px at 43% 10%, rgba(255, 255, 255, 0.64), transparent), radial-gradient(2px 2px at 42% 54%, rgba(255, 255, 255, 0.37), transparent), radial-gradient(2px 2px at 74% 94%, rgba(255, 255, 255, 0.42), transparent), radial-gradient(3px 3px at 65% 53%, rgba(255, 255, 255, 0.4), transparent), radial-gradient(3.5px 3.5px at 19% 34%, rgba(255, 255, 255, 0.54), transparent), radial-gradient(2px 2px at 97% 77%, rgba(255, 255, 255, 0.66), transparent), radial-gradient(1.5px 1.5px at 53% 49%, rgba(255, 255, 255, 0.7), transparent), radial-gradient(3px 3px at 19% 68%, rgba(255, 255, 255, 0.38), transparent), radial-gradient(1.5px 1.5px at 8% 17%, rgba(255, 255, 255, 0.57), transparent), radial-gradient(1px 1px at 89% 57%, rgba(255, 255, 255, 0.48), transparent), radial-gradient(3.5px 3.5px at 78% 62%, rgba(255, 255, 255, 0.44), transparent), radial-gradient(1px 1px at 72% 4%, rgba(255, 255, 255, 0.59), transparent), radial-gradient(2px 2px at 70% 37%, rgba(255, 255, 255, 0.39), transparent), radial-gradient(3px 3px at 57% 23%, rgba(255, 255, 255, 0.35), transparent), radial-gradient(2px 2px at 94% 95%, rgba(255, 255, 255, 0.69), transparent), radial-gradient(1px 1px at 24% 67%, rgba(255, 255, 255, 0.65), transparent), radial-gradient(3.5px 3.5px at 40% 84%, rgba(255, 255, 255, 0.56), transparent), radial-gradient(1.5px 1.5px at 21% 50%, rgba(255, 255, 255, 0.54), transparent), radial-gradient(2px 2px at 69% 3%, rgba(255, 255, 255, 0.52), transparent), radial-gradient(2px 2px at 16% 49%, rgba(255, 255, 255, 0.43), transparent), radial-gradient(1px 1px at 32% 75%, rgba(255, 255, 255, 0.38), transparent), radial-gradient(3.5px 3.5px at 64% 11%, rgba(255, 255, 255, 0.62), transparent), radial-gradient(3px 3px at 18% 87%, rgba(165, 255, 220, 0.68), transparent), radial-gradient(3.5px 3.5px at 23% 36%, rgba(165, 255, 220, 0.66), transparent), radial-gradient(3.5px 3.5px at 56% 30%, rgba(165, 255, 220, 0.61), transparent), radial-gradient(2px 2px at 90% 28%, rgba(165, 255, 220, 0.49), transparent), radial-gradient(2px 2px at 87% 86%, rgba(165, 255, 220, 0.5), transparent), radial-gradient(1px 1px at 68% 60%, rgba(165, 255, 220, 0.44), transparent), radial-gradient(1px 1px at 10% 46%, rgba(165, 255, 220, 0.56), transparent), radial-gradient(1.5px 1.5px at 31% 78%, rgba(165, 255, 220, 0.35), transparent), radial-gradient(1px 1px at 92% 83%, rgba(165, 255, 220, 0.43), transparent), radial-gradient(1px 1px at 6% 45%, rgba(165, 255, 220, 0.53), transparent)
}
.trainer-card.tc-grad .tc-frame {
	background-color: #100820;
	background-image: radial-gradient(ellipse 50% 38% at 78% 22%, rgba(139, 92, 246, 0.10), transparent 70%), radial-gradient(ellipse 55% 40% at 18% 82%, rgba(45, 212, 191, 0.09), transparent 70%)
}
.trainer-card.tc-grad .tc-frame::after {
	content: '';
	position: absolute;
	inset: -12%;
	pointer-events: none;
	z-index: 0;
	will-change: transform, opacity;
	animation: starfield-twinkle 6s ease-in-out infinite, starfield-drift 14s ease-in-out infinite alternate;
	background-image: radial-gradient(1.5px 1.5px at 97% 31%, rgba(255, 255, 255, 0.61), transparent), radial-gradient(1px 1px at 72% 39%, rgba(255, 255, 255, 0.36), transparent), radial-gradient(1px 1px at 81% 51%, rgba(255, 255, 255, 0.62), transparent), radial-gradient(1px 1px at 83% 78%, rgba(255, 255, 255, 0.40), transparent), radial-gradient(1px 1px at 24% 43%, rgba(255, 255, 255, 0.35), transparent), radial-gradient(1px 1px at 34% 76%, rgba(255, 255, 255, 0.62), transparent), radial-gradient(1px 1px at 32% 12%, rgba(255, 255, 255, 0.37), transparent), radial-gradient(1.5px 1.5px at 32% 38%, rgba(255, 255, 255, 0.38), transparent), radial-gradient(1px 1px at 69% 27%, rgba(255, 255, 255, 0.56), transparent), radial-gradient(1.5px 1.5px at 61% 73%, rgba(255, 255, 255, 0.54), transparent), radial-gradient(1.5px 1.5px at 2% 40%, rgba(255, 255, 255, 0.40), transparent), radial-gradient(1px 1px at 85% 69%, rgba(255, 255, 255, 0.64), transparent), radial-gradient(1.5px 1.5px at 66% 18%, rgba(255, 255, 255, 0.57), transparent), radial-gradient(1px 1px at 20% 86%, rgba(255, 255, 255, 0.60), transparent), radial-gradient(1.5px 1.5px at 95% 45%, rgba(255, 255, 255, 0.44), transparent), radial-gradient(2px 2px at 79% 59%, rgba(255, 255, 255, 0.37), transparent), radial-gradient(1px 1px at 15% 37%, rgba(255, 255, 255, 0.47), transparent), radial-gradient(1.5px 1.5px at 8% 37%, rgba(255, 255, 255, 0.41), transparent), radial-gradient(1px 1px at 60% 33%, rgba(255, 255, 255, 0.46), transparent), radial-gradient(1px 1px at 28% 86%, rgba(255, 255, 255, 0.54), transparent), radial-gradient(1.5px 1.5px at 82% 36%, rgba(255, 255, 255, 0.63), transparent), radial-gradient(1px 1px at 95% 38%, rgba(255, 255, 255, 0.44), transparent), radial-gradient(1px 1px at 37% 88%, rgba(255, 255, 255, 0.54), transparent), radial-gradient(1.5px 1.5px at 80% 32%, rgba(255, 255, 255, 0.63), transparent), radial-gradient(1px 1px at 77% 90%, rgba(255, 255, 255, 0.40), transparent), radial-gradient(1px 1px at 56% 49%, rgba(255, 255, 255, 0.60), transparent), radial-gradient(1.5px 1.5px at 82% 8%, rgba(255, 255, 255, 0.45), transparent), radial-gradient(1.5px 1.5px at 62% 29%, rgba(255, 255, 255, 0.39), transparent), radial-gradient(1px 1px at 38% 48%, rgba(255, 255, 255, 0.58), transparent), radial-gradient(1.5px 1.5px at 58% 78%, rgba(255, 255, 255, 0.36), transparent), radial-gradient(2px 2px at 14% 87%, rgba(255, 255, 255, 0.40), transparent), radial-gradient(1px 1px at 76% 71%, rgba(255, 255, 255, 0.46), transparent), radial-gradient(1px 1px at 2% 29%, rgba(255, 255, 255, 0.61), transparent), radial-gradient(1.5px 1.5px at 62% 97%, rgba(255, 255, 255, 0.51), transparent), radial-gradient(1px 1px at 9% 65%, rgba(255, 255, 255, 0.59), transparent), radial-gradient(2px 2px at 69% 44%, rgba(255, 255, 255, 0.60), transparent), radial-gradient(1px 1px at 50% 29%, rgba(255, 255, 255, 0.58), transparent), radial-gradient(1px 1px at 47% 91%, rgba(255, 255, 255, 0.40), transparent), radial-gradient(1px 1px at 20% 62%, rgba(255, 255, 255, 0.48), transparent), radial-gradient(1.5px 1.5px at 52% 95%, rgba(255, 255, 255, 0.59), transparent), radial-gradient(1px 1px at 25% 22%, rgba(255, 255, 255, 0.60), transparent), radial-gradient(1px 1px at 29% 51%, rgba(255, 255, 255, 0.59), transparent), radial-gradient(1.5px 1.5px at 88% 73%, rgba(255, 255, 255, 0.62), transparent), radial-gradient(2px 2px at 95% 27%, rgba(255, 255, 255, 0.63), transparent), radial-gradient(1px 1px at 23% 12%, rgba(255, 255, 255, 0.60), transparent), radial-gradient(1px 1px at 88% 21%, rgba(255, 255, 255, 0.45), transparent), radial-gradient(1.5px 1.5px at 64% 84%, rgba(255, 255, 255, 0.41), transparent), radial-gradient(1.5px 1.5px at 28% 31%, rgba(255, 255, 255, 0.50), transparent), radial-gradient(1px 1px at 82% 73%, rgba(255, 255, 255, 0.52), transparent), radial-gradient(1px 1px at 41% 57%, rgba(255, 255, 255, 0.47), transparent), radial-gradient(1.5px 1.5px at 67% 66%, rgba(255, 255, 255, 0.53), transparent), radial-gradient(2px 2px at 73% 51%, rgba(255, 255, 255, 0.55), transparent), radial-gradient(1px 1px at 92% 34%, rgba(255, 255, 255, 0.46), transparent), radial-gradient(1.5px 1.5px at 56% 30%, rgba(255, 255, 255, 0.40), transparent), radial-gradient(1px 1px at 35% 44%, rgba(255, 255, 255, 0.36), transparent), radial-gradient(1px 1px at 55% 56%, rgba(255, 255, 255, 0.52), transparent)
}
@keyframes starfield-twinkle {
	0%, 100% {
		opacity: 1
	}
	50% {
		opacity: 0.55
	}
}
@keyframes starfield-drift {
	0% {
		transform: translate3d(0, 0, 0)
	}
	100% {
		transform: translate3d(-55px, -38px, 0)
	}
}
@media (prefers-reduced-motion:reduce) {
	.trainer-card .tc-frame: : after {
		animation: none !important
	}
}
.trainer-card.tc-pi .tc-frame,
.trainer-card.tc-grad.tc-alum .tc-frame {
	background-color: #050608;
	background-image: radial-gradient(ellipse 55% 40% at 20% 18%, rgba(255, 211, 0, 0.14), transparent 65%), radial-gradient(ellipse 60% 45% at 80% 85%, rgba(76, 201, 240, 0.16), transparent 65%), radial-gradient(ellipse 38% 32% at 78% 48%, rgba(244, 63, 94, 0.12), transparent 70%), radial-gradient(ellipse 42% 32% at 18% 72%, rgba(96, 165, 250, 0.10), transparent 70%)
}
.trainer-card.tc-pi .tc-frame::after,
.trainer-card.tc-grad.tc-alum .tc-frame::after {
	content: '';
	position: absolute;
	inset: -12%;
	pointer-events: none;
	z-index: 0;
	will-change: transform, opacity;
	animation: starfield-twinkle 6s ease-in-out infinite -2s, starfield-drift 18s ease-in-out infinite alternate-reverse;
	background-image: radial-gradient(2px 2px at 43% 22%, rgba(255, 255, 255, 0.58), transparent), radial-gradient(1px 1px at 11% 71%, rgba(255, 255, 255, 0.48), transparent), radial-gradient(1.5px 1.5px at 9% 67%, rgba(255, 255, 255, 0.36), transparent), radial-gradient(1px 1px at 57% 56%, rgba(255, 255, 255, 0.43), transparent), radial-gradient(1px 1px at 72% 57%, rgba(255, 255, 255, 0.64), transparent), radial-gradient(1px 1px at 17% 31%, rgba(255, 255, 255, 0.55), transparent), radial-gradient(1.5px 1.5px at 52% 9%, rgba(255, 255, 255, 0.37), transparent), radial-gradient(2px 2px at 19% 40%, rgba(255, 255, 255, 0.4), transparent), radial-gradient(2px 2px at 17% 76%, rgba(255, 255, 255, 0.55), transparent), radial-gradient(1px 1px at 89% 26%, rgba(255, 255, 255, 0.55), transparent), radial-gradient(2px 2px at 83% 27%, rgba(255, 255, 255, 0.38), transparent), radial-gradient(1px 1px at 93% 11%, rgba(255, 255, 255, 0.57), transparent), radial-gradient(3.5px 3.5px at 65% 90%, rgba(255, 255, 255, 0.5), transparent), radial-gradient(3px 3px at 42% 62%, rgba(255, 255, 255, 0.48), transparent), radial-gradient(1.5px 1.5px at 33% 26%, rgba(255, 255, 255, 0.38), transparent), radial-gradient(3px 3px at 40% 70%, rgba(255, 255, 255, 0.66), transparent), radial-gradient(2px 2px at 95% 60%, rgba(255, 255, 255, 0.56), transparent), radial-gradient(3.5px 3.5px at 11% 18%, rgba(255, 255, 255, 0.5), transparent), radial-gradient(1.5px 1.5px at 98% 46%, rgba(255, 255, 255, 0.68), transparent), radial-gradient(1px 1px at 55% 8%, rgba(255, 255, 255, 0.62), transparent), radial-gradient(2px 2px at 75% 43%, rgba(255, 255, 255, 0.59), transparent), radial-gradient(3px 3px at 78% 66%, rgba(255, 255, 255, 0.37), transparent), radial-gradient(3px 3px at 13% 37%, rgba(255, 255, 255, 0.59), transparent), radial-gradient(2px 2px at 10% 10%, rgba(255, 255, 255, 0.58), transparent), radial-gradient(2px 2px at 89% 60%, rgba(255, 255, 255, 0.6), transparent), radial-gradient(1px 1px at 87% 47%, rgba(255, 255, 255, 0.68), transparent), radial-gradient(1px 1px at 47% 24%, rgba(255, 255, 255, 0.52), transparent), radial-gradient(1.5px 1.5px at 29% 39%, rgba(255, 255, 255, 0.61), transparent), radial-gradient(3px 3px at 52% 53%, rgba(255, 255, 255, 0.38), transparent), radial-gradient(3.5px 3.5px at 59% 54%, rgba(255, 255, 255, 0.45), transparent), radial-gradient(3.5px 3.5px at 19% 58%, rgba(255, 255, 255, 0.45), transparent), radial-gradient(2px 2px at 55% 48%, rgba(255, 255, 255, 0.69), transparent), radial-gradient(1.5px 1.5px at 21% 13%, rgba(255, 211, 0, 0.4), transparent), radial-gradient(1px 1px at 86% 32%, rgba(255, 211, 0, 0.52), transparent), radial-gradient(2px 2px at 77% 26%, rgba(255, 211, 0, 0.45), transparent), radial-gradient(3.5px 3.5px at 20% 56%, rgba(255, 211, 0, 0.48), transparent), radial-gradient(1.5px 1.5px at 74% 43%, rgba(255, 211, 0, 0.59), transparent), radial-gradient(1px 1px at 67% 82%, rgba(255, 211, 0, 0.51), transparent), radial-gradient(2px 2px at 89% 74%, rgba(255, 211, 0, 0.49), transparent), radial-gradient(3px 3px at 52% 16%, rgba(255, 211, 0, 0.57), transparent), radial-gradient(1px 1px at 9% 27%, rgba(255, 211, 0, 0.69), transparent), radial-gradient(1px 1px at 58% 23%, rgba(255, 211, 0, 0.47), transparent), radial-gradient(1px 1px at 8% 16%, rgba(255, 211, 0, 0.55), transparent), radial-gradient(2px 2px at 70% 15%, rgba(255, 211, 0, 0.56), transparent), radial-gradient(2px 2px at 11% 29%, rgba(76, 201, 240, 0.4), transparent), radial-gradient(2px 2px at 34% 47%, rgba(76, 201, 240, 0.52), transparent), radial-gradient(3px 3px at 16% 65%, rgba(76, 201, 240, 0.52), transparent), radial-gradient(1.5px 1.5px at 41% 13%, rgba(76, 201, 240, 0.39), transparent), radial-gradient(2px 2px at 45% 97%, rgba(76, 201, 240, 0.52), transparent), radial-gradient(3.5px 3.5px at 90% 23%, rgba(76, 201, 240, 0.36), transparent), radial-gradient(1.5px 1.5px at 69% 49%, rgba(76, 201, 240, 0.59), transparent), radial-gradient(2px 2px at 5% 70%, rgba(76, 201, 240, 0.69), transparent), radial-gradient(2px 2px at 13% 92%, rgba(76, 201, 240, 0.53), transparent), radial-gradient(1.5px 1.5px at 23% 48%, rgba(76, 201, 240, 0.54), transparent), radial-gradient(1.5px 1.5px at 66% 45%, rgba(76, 201, 240, 0.56), transparent), radial-gradient(2px 2px at 26% 33%, rgba(76, 201, 240, 0.61), transparent)
}
@media (max-width:420px) {
	.trainer-card {
		width: 92vw;
		max-width: 320px
	}
}
.publications-list {
	max-width: 1080px;
	margin: 0 auto
}
.pub-group {

	background: rgba(255, 255, 255, 0.05);
	-webkit-backdrop-filter: blur(14px) saturate(120%);
	backdrop-filter: blur(14px) saturate(120%);
	border: 1px solid rgba(255, 255, 255, 0.10);
	border-radius: 6px;
	margin-bottom: 1rem;
	transition: border-color .3s var(--ease), background-color .3s var(--ease);
	position: relative;

	overflow: hidden;
}
.pub-group:last-child {
	margin-bottom: 0
}

.pub-group::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 4px;
	background: linear-gradient(to bottom,
		transparent 0,
		var(--pub-accent, var(--accent)) 14px,
		var(--pub-accent, var(--accent)) calc(100% - 14px),
		transparent 100%);
	pointer-events: none;
}
.pub-group:nth-of-type(1) { --pub-accent: rgba(255, 211, 0, 0.85); }
.pub-group:nth-of-type(2) { --pub-accent: rgba(76, 201, 240, 0.85); }
.pub-group:nth-of-type(3) { --pub-accent: rgba(192, 132, 252, 0.85); }
.pub-group:nth-of-type(4) { --pub-accent: rgba(45, 212, 191, 0.85); }
.pub-group:hover {
	border-color: rgba(255, 255, 255, 0.20)
}
.pub-group>summary {
	list-style: none;
	cursor: pointer;
	padding: 1.5rem 1.5rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	font-family: var(--font-display);
	font-size: 1.4rem;
	font-weight: 600;
	color: var(--text);
	transition: color .2s var(--ease)
}
.pub-group>summary::-webkit-details-marker {
	display: none
}
.pub-group>summary:hover {
	color: var(--accent)
}
.pub-group>summary::after {
	content: '';
	width: 14px;
	height: 14px;
	border-right: 1.5px solid var(--text-dim);
	border-bottom: 1.5px solid var(--text-dim);
	transform: rotate(45deg);
	transition: transform .25s var(--ease), border-color .25s var(--ease);
	flex-shrink: 0
}
.pub-group[open]>summary::after {
	transform: rotate(225deg);
	border-color: var(--accent)
}
.pub-list {
	list-style: none;
	margin: 0;
	padding: 0 1.5rem 0.5rem
}
.pub-list li {
	padding: 1.5rem 0.75rem;
	border-top: 1px solid rgba(255, 255, 255, 0.06);
	transition: background .2s var(--ease);
	border-radius: 2px
}
.pub-list li:hover {
	background: rgba(255, 255, 255, 0.025)
}
.pub-list li p {
	margin: 0;
	color: var(--text-dim);
	font-size: 1.08rem;
	line-height: 1.7
}
.pub-list .title {
	color: var(--text);
	font-weight: 500;
	font-family: var(--font-display);
	font-size: 1.22rem;
	letter-spacing: -0.005em;
	display: inline
}
.pub-list a.title:hover {
	color: var(--accent)
}
.pub-list i {
	color: var(--text-dim)
}
.pub-list b,
.pub-list strong {
	color: var(--text)
}
.pdf-button,
.cover-button {
	display: inline-block;
	font-family: var(--font-mono);
	font-size: 0.7rem !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--accent) !important;
	border: 1px solid var(--border);
	padding: 0.25rem 0.6rem;
	border-radius: 3px;
	margin-top: 0.5rem;
	transition: all .2s var(--ease);
	white-space: nowrap
}
.pdf-button:hover,
.cover-button:hover {
	background: var(--accent);
	color: var(--bg) !important;
	border-color: var(--accent)
}
.cover-button {
	color: var(--accent-2) !important
}
.cover-button:hover {
	background: var(--accent-2);
	border-color: var(--accent-2)
}
.news-section {
	background: var(--bg-2)
}
.news-year {
	border-top: 1px solid var(--border-soft)
}
.news-year:last-child {
	border-bottom: 1px solid var(--border-soft)
}
.news-year>summary {
	list-style: none;
	cursor: pointer;
	padding: 1.75rem 0.5rem;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	transition: color .2s var(--ease)
}
.news-year>summary::-webkit-details-marker {
	display: none
}
.news-year>summary>.year-label {
	font-family: var(--font-display);
	font-size: 2.2rem;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--text);
	transition: color .2s var(--ease)
}
.news-year>summary:hover .year-label {
	color: var(--accent)
}
.news-year>summary::after {
	content: '';
	width: 14px;
	height: 14px;
	border-right: 1.5px solid var(--text-dim);
	border-bottom: 1.5px solid var(--text-dim);
	transform: rotate(45deg);
	transition: transform .25s var(--ease), border-color .25s var(--ease)
}
.news-year[open]>summary::after {
	transform: rotate(225deg);
	border-color: var(--accent)
}
.news-grid {
	column-width: 320px;
	column-gap: 1.5rem;
	padding: 1rem 0 2rem
}
.news-card {
	position: relative;
	background: var(--bg-elev);
	border: 1px solid var(--border);
	border-radius: 4px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform .35s var(--ease), border-color .35s var(--ease);
	break-inside: avoid;
	-webkit-column-break-inside: avoid;
	page-break-inside: avoid;
	margin-bottom: 1.5rem
}
.news-card-pill {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	color: var(--bg);
	background: var(--accent-yellow);
	border-radius: 50%;
	border: 1px solid transparent;
	box-shadow: 0 8px 22px -8px rgba(255, 211, 0, 0.55), 0 0 0 1px rgba(0, 0, 0, 0.12);
	transition: transform .25s var(--ease)
}
.news-card-pill i {
	font-size: 0.9rem;
	color: var(--bg);
	line-height: 1
}
.news-card:hover .news-card-pill {
	transform: scale(1.06)
}
.news-card-pill.is-grant {
	background: var(--accent-2);
	box-shadow: 0 8px 22px -8px rgba(76, 201, 240, 0.55), 0 0 0 1px rgba(0, 0, 0, 0.12)
}
.news-card-pill.is-grant i {
	color: var(--bg)
}
.news-card-pill.is-award {
	background: #c084fc;
	box-shadow: 0 8px 22px -8px rgba(192, 132, 252, 0.55), 0 0 0 1px rgba(0, 0, 0, 0.12)
}
.news-card-pill.is-award i {
	color: var(--bg)
}
.news-card-pill.is-publication {
	background: #4ade80;
	box-shadow: 0 8px 22px -8px rgba(74, 222, 128, 0.55), 0 0 0 1px rgba(0, 0, 0, 0.12)
}
.news-card-pill.is-publication i {
	color: var(--bg)
}
.news-card-pill.is-member {
	background: rgba(7, 9, 15, 0.55);
	color: var(--accent-yellow);
	border-color: var(--accent-yellow);
	box-shadow: 0 4px 14px -8px rgba(0, 0, 0, 0.5);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px)
}
.news-card-pill.is-member i {
	color: var(--accent-yellow)
}
.news-card:hover {
	transform: translateY(-3px);
	border-color: var(--accent)
}
.news-card-image {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	position: relative;
	background: var(--bg-elev-2)
}
.news-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--focus, center);
	transition: transform .8s var(--ease)
}
.news-card:hover .news-card-image img {
	transform: scale(1.04)
}
.news-card-body {
	padding: 1.5rem 1.5rem 1.75rem;
	flex: 1;
	display: flex;
	flex-direction: column
}
.news-date {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--accent);
	margin-bottom: 0.75rem
}
.news-card h3 {
	font-size: 1.1rem;
	margin-bottom: 0.75rem;
	color: var(--text);
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.3
}
.news-card h3 i {
	color: var(--accent-yellow);
	margin-right: 0.4rem
}
.news-card h3 i.fa-graduation-cap {
	color: var(--accent-yellow);
	text-shadow: 0 0 8px rgba(255, 211, 0, 0.6)
}
.news-card p {
	color: var(--text-dim);
	font-size: 0.92rem;
	margin: 0;
	flex: 1
}
.news-card.defense {
	border-color: rgba(255, 211, 0, 0.3)
}
.news-card.defense:hover {
	border-color: var(--accent-yellow);
	box-shadow: 0 16px 40px -20px rgba(255, 211, 0, 0.3)
}
.site-footer {
	padding: 5rem 0 3rem;
	background: var(--bg);
	border-top: 1px solid var(--border-soft);
	position: relative;
	z-index: 1
}
.footer-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 3rem;
	margin-bottom: 3rem
}
.footer-col h5 {
	font-family: var(--font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--accent);
	font-weight: 500;
	margin-bottom: 1rem
}
.footer-col p {
	color: var(--text-dim);
	font-size: 0.92rem;
	line-height: 1.7;
	margin: 0
}
.footer-col a {
	color: var(--text-dim)
}
.footer-col a:hover {
	color: var(--accent)
}
.footer-col .sponsors {
	max-width: 100%;
	margin-top: 1rem
}
.footer-col .lab-mark {
	max-width: 220px
}
.footer-bottom {
	padding-top: 2rem;
	border-top: 1px solid var(--border-soft);
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem;
	font-family: var(--font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-mute)
}
@media (max-width:880px) {
	.footer-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 2rem
	}
}
@media (max-width:540px) {
	.footer-grid {
		grid-template-columns: 1fr
	}
}
.reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity .9s var(--ease), transform .9s var(--ease);
	will-change: opacity, transform
}
.reveal.is-in {
	opacity: 1;
	transform: none
}
.reveal.delay-1 {
	transition-delay: .08s
}
.reveal.delay-2 {
	transition-delay: .16s
}
.reveal.delay-3 {
	transition-delay: .24s
}
@media (prefers-reduced-motion:reduce) {
	*, *: : before, *: : after {
		animation: none !important;
		transition-duration: 0.001s !important
	}
	.reveal {
		opacity: 1;
		transform: none
	}
}
.lightbox-backdrop {
	position: fixed;
	inset: 0;
	background: rgba(7, 9, 15, 0.94);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	z-index: 1000;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 2rem;
	cursor: zoom-out;
	opacity: 0;
	transition: opacity .25s var(--ease)
}
.lightbox-backdrop.is-open {
	display: flex;
	opacity: 1
}
.lightbox-backdrop img {
	max-width: min(1200px, 100%);
	max-height: 90vh;
	border-radius: 4px;
	box-shadow: 0 30px 80px -20px rgba(0, 0, 0, 0.6);
	cursor: default
}
.lightbox-close {
	position: absolute;
	top: 1.5rem;
	right: 1.5rem;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--border);
	color: var(--text);
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.04);
	transition: all .2s var(--ease)
}
.lightbox-close:hover {
	background: var(--accent);
	border-color: var(--accent);
	color: var(--bg);
	transform: rotate(90deg)
}
.lightbox-close::before {
	content: '';
	width: 16px;
	height: 1.5px;
	background: currentColor;
	position: absolute;
	transform: rotate(45deg)
}
.lightbox-close::after {
	content: '';
	width: 16px;
	height: 1.5px;
	background: currentColor;
	position: absolute;
	transform: rotate(-45deg)
}
.is-preload * {
	animation: none !important;
	transition: none !important
}
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0
}
@media print {
	.site-header, .scroll-hint, .hero-diffraction, .hero-lattice, .lightbox-backdrop {
		display: none !important
	}
	body {
		background: white;
		color: black
	}
	a {
		color: black
	}
}
.research-item-image {
	position: relative
}
.research-item-cover-dots {
	position: absolute;
	bottom: 12px;
	left: 50%;
	transform: translateX(-50%);
	display: inline-flex;
	gap: 8px;
	padding: 6px 11px;
	border-radius: 100px;
	background: rgba(20, 23, 31, .7);
	backdrop-filter: blur(4px);
	opacity: 0;
	pointer-events: none;
	transition: opacity .25s var(--ease);
	z-index: 2
}
.research-item-image:hover .research-item-cover-dots,
.research-item-image:focus-within .research-item-cover-dots {
	opacity: 1;
	pointer-events: auto
}
.research-item-cover-dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	border: none;
	padding: 0;
	background: rgba(255, 255, 255, .4);
	cursor: pointer;
	transition: background .2s var(--ease), transform .2s var(--ease)
}
.research-item-cover-dot:hover {
	background: rgba(255, 255, 255, .75);
	transform: scale(1.2)
}
.research-item-cover-dot.is-active {
	background: var(--accent);
	transform: scale(1.15)
}
.research-item-cover-dot:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px
}
.tc-badge-wrap:hover {
	z-index: 10
}

.people-horizon {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	height: 450px;
	position: relative;
	z-index: 1;
	pointer-events: none;

	background-image:
		radial-gradient(ellipse 3500px 640px at 50% 1010px,
			#000 0%,
			#000 97%,
			rgba(255, 245, 200, 0.95) 97.3%,
			rgba(255, 215, 60, 0.78) 98%,
			rgba(240, 180, 40, 0.55) 98.7%,
			rgba(200, 140, 30, 0.30) 99.4%,
			transparent 100%),
		radial-gradient(ellipse 3500px 640px at 50% 1010px,
			transparent 0%,
			transparent 100%,
			rgba(0, 0, 0, 0.95) 101%,
			transparent 161%);
	background-position: center, center;
	background-size: 100% 100%, 100% 100%;
	background-repeat: no-repeat, no-repeat;
}

.people-cards-header {
	max-width: 1080px;
	margin: 0 auto 3rem;
	text-align: center;
}
.people-cards-header h2 {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	font-family: 'Michroma', var(--font-display);
	font-size: 2.6rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	margin: 0;
	color: var(--text);
	text-shadow: 0 0 32px rgba(255, 211, 0, 0.18);
}
.people-cards-header h2 > span {
	position: relative;
	padding: 0 0.4em;
}

.people-cards-header h2 > span::before,
.people-cards-header h2 > span::after {
	content: '';
	position: absolute;
	width: 12px;
	height: 12px;
	border: 2px solid var(--accent);
	opacity: 0.65;
}
.people-cards-header h2 > span::before {
	top: -8px;
	left: -10px;
	border-right: none;
	border-bottom: none;
}
.people-cards-header h2 > span::after {
	bottom: -8px;
	right: -10px;
	border-left: none;
	border-top: none;
}
.people-cards-header h2::before,
.people-cards-header h2::after {
	content: '';
	flex: 1;
	height: 1px;
	background: linear-gradient(to right, transparent, rgba(255, 211, 0, 0.45), transparent);
	max-width: 320px;
}

.people-cards-header .manifest-classification {
	display: block;
	font-family: var(--font-mono);
	font-size: 0.7rem;
	font-weight: 500;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: var(--accent);
	opacity: 0.55;
	margin: 0 0 1.4rem;
}
.people-cards-header .manifest-classification::before,
.people-cards-header .manifest-classification::after {
	content: '//';
	display: inline-block;
	margin: 0 0.6em;
	opacity: 0.6;
}

.people-floor {

	background-color: #000;
	background-image:
		linear-gradient(to bottom, #000 0, transparent 260px),
		url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='49' viewBox='0 0 28 49'%3E%3Cg fill='%23ffffff' fill-opacity='0.05' fill-rule='evenodd'%3E%3Cpath d='M13.99 9.25l13 7.5v15l-13 7.5L1 31.75v-15l12.99-7.5zM3 17.9v12.7l10.99 6.34 11-6.35V17.9l-11-6.34L3 17.9zM0 15l12.98-7.5V0h-2v6.35L0 12.69v2.3zm0 18.5L12.98 41v8h-2v-6.85L0 35.81v-2.3zM15 0v7.5L27.99 15H28v-2.31h-.01L17 6.35V0h-2zm0 49v-8l12.99-7.5H28v2.3h-.01L17 42.15V49h-2z'/%3E%3C/g%3E%3C/svg%3E");
	background-size: 100% 100%, 56px 98px;
	background-repeat: no-repeat, repeat;
	background-position: 0 0, 0 0;
	padding-top: 2rem;
	padding-bottom: var(--section-y);
	position: relative;
}

.crew-terminal {
	max-width: 540px;
	margin: 1.75rem auto 0;
	padding: 0;
	font-family: var(--font-mono);
	font-size: 0.82rem;
	line-height: 1.85;
	color: var(--text-dim);
	text-align: left;
	white-space: pre;
	overflow-x: auto;
	opacity: 0.65;
	background: none;
	border: none;
	box-shadow: none;
}
.term-prompt { color: var(--accent); }
.term-out    { color: var(--text-dim); }

.term-out::before {
	content: '↳ ';
	color: var(--text-mute);
}
@media (max-width: 1100px) {
	.lab-stats-heading,
	.lab-stats {
		display: none;
	}
}
@media (max-width: 540px) {
	.hero-lattice,
	.scroll-hint,
	.group-photo,
	.crew-terminal {
		display: none;
	}
	.alumni-section {
		margin-top: 2rem;
	}
	.alumni-section .people-grid-wrap {
		padding-top: 0;
	}
	.pub-list li p {
		font-size: 0.85rem;
	}
	.pub-list .title {
		font-size: 1rem;
	}
	.pub-list li {
		padding: 1rem 0.5rem;
	}
}

.alumni-section[hidden] {
	display: none;
}
.alumni-section {
	margin-top: 4rem;
}
.alumni-terminal {
	margin-top: 0;
	margin-bottom: 1.5rem;
}
