*{box-sizing:border-box}
:root{
	--primary:#0266f3;
	--accent:#000000;
	--hover:#000000;
	--ink:#1f1f1f;
	--muted:#666;
	--line:#e0e0e0;
	--bg-light:#f8f9fa;
}
body{
	margin:0;
	background:#fff;
	color:var(--ink);
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
	line-height:1.6;
}
h1, h2, h3, h4, h5, h6{
	font-family:'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;
}
.container{max-width:1180px;margin:0 auto;padding:0 24px}
.site-header{
	display:grid;
	grid-template-columns:auto 1fr auto;
	align-items:center;
	gap:24px;
	background:var(--primary);
	color:#fff;
	padding:20px 24px;
	margin:12px -24px 32px;
	box-shadow:0 2px 4px rgba(0,0,0,.1);
}
.site-header h1{
	margin:0;
	letter-spacing:0;
	font-size:1.85rem;
	font-weight:600;
	color:#fff;
	cursor:pointer;
	line-height:1;
	display:flex;
	align-items:center;
}
.header-nav{
	display:flex;
	gap:8px;
	justify-content:center;
	flex-wrap:wrap;
}
.header-nav button{
	padding:8px 20px;
	border:none;
	border-radius:6px;
	background:rgba(255,255,255,0.15);
	color:#fff;
	cursor:pointer;
	font-family:'Montserrat', sans-serif;
	font-weight:600;
	font-size:.9rem;
	transition:all .2s;
}
.header-nav button:hover{
	background:rgba(255,255,255,0.25);
}
.header-nav button.active{
	background:#fff;
	color:var(--primary);
	box-shadow:0 2px 6px rgba(0,0,0,0.15);
}
.nav-more{
	position:relative;
	display:flex;
	align-items:center;
}
.nav-more-trigger{
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:center;
	gap:4px;
	padding:10px 14px;
}
.nav-more-trigger span{
	display:block;
	width:18px;
	height:2px;
	background:#fff;
	border-radius:2px;
	transition:background .2s;
}
.nav-more-trigger.active span{
	background:var(--primary);
}
.nav-more-dropdown{
	position:absolute;
	top:calc(100% + 10px);
	right:0;
	background:#fff;
	border-radius:10px;
	box-shadow:0 10px 30px rgba(0,0,0,.18);
	padding:8px;
	display:flex;
	flex-direction:column;
	min-width:190px;
	z-index:60;
}
.nav-more-dropdown button{
	background:none;
	border:none;
	text-align:left;
	padding:10px 14px;
	border-radius:6px;
	font-family:'Montserrat', sans-serif;
	font-weight:600;
	font-size:.92rem;
	color:var(--ink);
	cursor:pointer;
	transition:background .2s, color .2s;
}
.nav-more-dropdown button:hover{
	background:var(--bg-light);
}
.nav-more-dropdown button.active{
	color:var(--primary);
	background:var(--bg-light);
}
.news-page-header{
	margin-bottom:24px;
}
.empty-page-placeholder{
	color:var(--muted);
	font-style:italic;
}
.news-kicker{
	margin:0 0 8px;
	color:var(--primary);
	font-size:.95rem;
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:.5px;
}
.news-page-header h2{
	margin:0 0 16px;
	font-size:2.5rem;
	line-height:1.2;
	color:var(--accent);
}
.news-item{
	position:relative;
	border-top:1px solid var(--line);
	padding:24px 0;
	display:grid;
	grid-template-columns:280px 1fr;
	gap:24px;
	transition:all .2s;
}
.news-item:hover{
	padding-left:8px;
}
.news-item-edit-btn{
	position:absolute;
	top:16px;
	right:0;
}
.news-thumb{
	display:block;
	width:100%;
	aspect-ratio:16/10;
	object-fit:cover;
	border-radius:8px;
	border:1px solid var(--line);
}
.news-copy{min-width:0}
.news-copy-editable{padding-right:90px}
.news-meta{
	margin:0 0 8px;
	color:var(--muted);
	font-size:.9rem;
}
.news-title{
	margin:0 0 12px;
	font-size:1.5rem;
	line-height:1.3;
	font-weight:600;
}
.news-title a{
	color:var(--ink);
	text-decoration:none;
	transition:color .2s;
}
.news-title a:hover{
	color:var(--primary);
}
.news-summary{
	margin:0;
	line-height:1.65;
	max-width:82ch;
	color:var(--ink);
}

/* ── Projects ──────────────────────────────────────────── */
.project-card{
	position:relative;
	border-top:1px solid var(--line);
	padding:24px 0;
	display:grid;
	grid-template-columns:1fr 260px;
	gap:24px;
	align-items:center;
	transition:all .2s;
}
.project-card:hover{
	padding-left:8px;
}
.project-card-edit-btn{
	position:absolute;
	bottom:16px;
	left:0;
}
.project-card-body-editable{
	padding-bottom:48px;
}
.project-card-body{
	min-width:0;
}
.project-card-image{
	display:block;
	width:100%;
	aspect-ratio:4/3;
	object-fit:cover;
	border-radius:12px;
	border:1px solid var(--line);
}
.project-title{
	margin:0 0 8px;
	font-size:1.4rem;
	line-height:1.3;
	font-weight:700;
	color:var(--accent);
}
.project-meta-row{
	display:flex;
	justify-content:space-between;
	align-items:center;
	flex-wrap:wrap;
	gap:16px;
	margin-bottom:10px;
}
.project-byline{
	margin:0;
	font-family:'Montserrat', sans-serif;
	font-size:.95rem;
	font-weight:600;
}
.project-byline-student{
	color:var(--primary);
}
a.project-byline-student{
	text-decoration:none;
}
a.project-byline-student:hover{
	text-decoration:underline;
}
.project-byline-supervisors{
	color:var(--ink);
}
.project-description{
	margin:0;
	line-height:1.6;
	max-width:70ch;
	color:var(--ink);
}
.project-status-toggle{
	display:inline-flex;
	align-items:center;
	gap:8px;
	flex-shrink:0;
}
.project-status-toggle-track{
	position:relative;
	width:38px;
	height:20px;
	border-radius:999px;
	background:#000;
	transition:background .2s;
	flex-shrink:0;
}
.project-status-toggle-active .project-status-toggle-track{
	background:var(--primary);
}
.project-status-toggle-knob{
	position:absolute;
	top:2px;
	left:2px;
	width:16px;
	height:16px;
	border-radius:50%;
	background:#fff;
	transition:transform .2s;
}
.project-status-toggle-active .project-status-toggle-knob{
	transform:translateX(18px);
}
.project-status-toggle-label{
	font-size:.85rem;
	font-weight:700;
	color:var(--ink);
	white-space:nowrap;
}
.project-status-toggle-active .project-status-toggle-label{
	color:var(--primary);
}
.project-detail-meta-row{
	margin-bottom:20px;
}
.project-detail-panels{
	margin-top:30px;
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:20px;
	align-items:start;
}

/* ── Workshops ──────────────────────────────────────────── */
.workshops-grid{
	display:grid;
	grid-template-columns:repeat(2, 1fr);
	gap:24px;
	margin-top:20px;
}
@media (max-width:768px){
	.workshops-grid{
		grid-template-columns:1fr;
	}
}
.workshop-card{
	position:relative;
	display:flex;
	flex-direction:column;
	height:460px;
	border:1px solid var(--line);
	border-radius:16px;
	overflow:hidden;
	background:#fff;
}
.workshop-card-edit-btn{
	position:absolute;
	top:16px;
	right:16px;
	z-index:1;
}
.workshop-card-image{
	display:block;
	width:100%;
	height:200px;
	object-fit:cover;
	border-bottom:1px solid var(--line);
	flex-shrink:0;
}
.workshop-card-body{
	display:flex;
	flex-direction:column;
	flex:1;
	padding:20px;
	overflow:hidden;
}
.workshop-card-title{
	margin:0 0 6px;
	font-size:1.15rem;
	line-height:1.3;
}
.workshop-card-byline{
	margin:0 0 10px;
	color:var(--primary);
	font-family:'Montserrat', sans-serif;
	font-size:.9rem;
	font-weight:600;
}
.workshop-card-description{
	margin:0;
	color:var(--ink);
	line-height:1.6;
}
.workshop-card-files{
	margin-top:auto;
	padding-top:12px;
	display:flex;
	flex-wrap:wrap;
	gap:8px;
}
.workshop-file-link{
	display:inline-flex;
	align-items:center;
	padding:6px 12px;
	border-radius:999px;
	background:rgba(2,102,243,.12);
	color:var(--primary);
	text-decoration:none;
	font-weight:600;
	font-size:.82rem;
}
.workshop-file-link:hover{
	background:rgba(2,102,243,.18);
}
.workshop-detail-byline{
	margin:0 0 16px;
	color:var(--primary);
	font-family:'Montserrat', sans-serif;
	font-size:.95rem;
	font-weight:600;
}
.workshop-detail-description{
	line-height:1.7;
	color:var(--ink);
	margin-bottom:20px;
}
.workshop-detail-description code{
	font-family:'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
	font-size:.9em;
	background:var(--bg-light);
	padding:2px 6px;
	border-radius:4px;
}
.workshop-detail-files{
	margin-top:20px;
	padding-top:20px;
	border-top:1px solid var(--line);
}
.workshop-attachment-list{
	margin:12px 0 0;
	padding:0;
	list-style:none;
	display:flex;
	flex-direction:column;
	gap:8px;
}
.workshop-attachment-list li{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	padding:8px 12px;
	border:1px solid var(--line);
	border-radius:8px;
}
.workshop-attachment-list a{
	color:var(--primary);
	text-decoration:none;
	font-weight:600;
	font-size:.9rem;
}
.workshop-attachment-list a:hover{
	text-decoration:underline;
}

/* ── Publications ──────────────────────────────────────── */
.publications-list{
	display:flex;
	flex-direction:column;
	gap:16px;
}
.publication-card{
	border:1px solid var(--line);
	border-radius:12px;
	padding:18px 20px;
	background:#fff;
}
.publication-card-header{
	display:flex;
	justify-content:space-between;
	align-items:flex-start;
	gap:12px;
}
.publication-title{
	margin:0 0 6px;
	font-size:1.1rem;
	line-height:1.4;
	color:var(--accent);
}
.publication-title a{
	color:var(--accent);
	text-decoration:none;
}
.publication-title a:hover{
	color:var(--primary);
	text-decoration:underline;
}
.publication-authors{
	margin:0 0 8px;
	display:flex;
	gap:6px;
	flex-wrap:wrap;
}
.publication-author{
	display:inline-flex;
	align-items:center;
	padding:3px 10px;
	border-radius:14px;
	font-size:.8rem;
	font-weight:600;
	line-height:1.3;
}
.publication-author-student{
	background:#1f1f1f;
	color:#fff;
}
.publication-author-alumni{
	background:#8a8a8a;
	color:#fff;
}
.publication-author-pi{
	background:var(--primary);
	color:#fff;
}
.publication-author-external{
	background:var(--bg-light);
	color:var(--ink);
	border:1px solid var(--line);
}
.publication-meta{
	margin:0 0 4px;
	color:var(--muted);
	font-size:.9rem;
	font-style:italic;
}
.publication-doi-inline{
	margin-left:8px;
	color:var(--primary);
	text-decoration:none;
	font-size:.85rem;
	font-weight:600;
	font-style:normal;
}
.publication-doi-inline:hover{
	text-decoration:underline;
}
.publication-type{
	margin:0 0 4px;
	color:var(--muted);
	font-size:.85rem;
}
.publication-doi,
.publication-pmid{
	margin:0 0 4px;
}
.publication-doi a,
.publication-pmid a{
	color:var(--primary);
	text-decoration:none;
	font-size:.85rem;
	font-weight:600;
}
.publication-doi a:hover,
.publication-pmid a:hover{
	text-decoration:underline;
}
.publication-bibtex-input{
	font-family:'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
	font-size:.85rem;
	margin-bottom:10px;
}
.publication-parse-btn{
	margin-bottom:8px;
}
.news-detail-title{
	margin:0 0 16px;
	font-size:2.5rem;
	line-height:1.2;
	color:var(--accent);
}
.news-detail-image{
	width:100%;
	max-height:500px;
	object-fit:cover;
	border-radius:12px;
	border:1px solid var(--line);
	margin:4px 0 14px;
}
.project-detail-image{
	object-fit:contain;
	background:var(--bg-light);
}
.news-detail-body{font-size:1.08rem;line-height:1.7;max-width:75ch;text-align:justify}
.news-detail-body p{margin:0 0 1rem}
.news-detail-body p:last-child{margin-bottom:0}
.news-detail-body a{
	color:var(--primary);
	text-decoration:none;
	font-weight:500;
}
.news-detail-body a:hover{
	color:var(--accent);
	text-decoration:underline;
}
.news-detail-page{
	max-width:900px;
	margin:0 auto;
	animation:fadeIn 0.3s ease;
}
.news-gallery-section{
	margin-top:36px;
	padding-top:28px;
	border-top:1px solid var(--line);
}
.news-gallery-heading{
	margin:0 0 16px;
	font-size:1.15rem;
	color:var(--accent);
}
.news-gallery-grid{
	display:grid;
	grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
	gap:14px;
}
.news-gallery-thumb-button{
	padding:0;
	border:1px solid var(--line);
	border-radius:10px;
	overflow:hidden;
	background:#fff;
	cursor:pointer;
	transition:box-shadow .2s, transform .2s;
}
.news-gallery-thumb-button:hover{
	box-shadow:0 6px 18px rgba(0,0,0,.12);
	transform:translateY(-2px);
}
.news-gallery-thumb{
	display:block;
	width:100%;
	aspect-ratio:4/3;
	object-fit:cover;
}
.news-gallery-lightbox{
	position:relative;
	max-width:92vw;
	max-height:92vh;
	display:flex;
	align-items:center;
	justify-content:center;
}
.news-gallery-lightbox-img{
	max-width:92vw;
	max-height:92vh;
	object-fit:contain;
	border-radius:12px;
	box-shadow:0 14px 40px rgba(0,0,0,.35);
}
.news-gallery-lightbox .modal-close{
	top:-8px;
	right:-8px;
	background:#fff;
	border-radius:50%;
	width:36px;
	height:36px;
	display:flex;
	align-items:center;
	justify-content:center;
	box-shadow:0 4px 12px rgba(0,0,0,.2);
}
.news-gallery-admin-grid{
	display:grid;
	grid-template-columns:repeat(auto-fill,minmax(110px,1fr));
	gap:10px;
	margin-top:12px;
}
.news-gallery-admin-item{
	position:relative;
	border:1px solid var(--line);
	border-radius:8px;
	overflow:hidden;
}
.news-gallery-admin-thumb{
	display:block;
	width:100%;
	aspect-ratio:4/3;
	object-fit:cover;
}
.news-gallery-admin-remove{
	position:absolute;
	top:4px;
	right:4px;
	width:22px;
	height:22px;
	border:none;
	border-radius:50%;
	background:rgba(0,0,0,.6);
	color:#fff;
	font-size:1rem;
	line-height:1;
	cursor:pointer;
	display:flex;
	align-items:center;
	justify-content:center;
	transition:background .2s;
}
.news-gallery-admin-remove:hover{
	background:rgba(200,0,0,.85);
}
.back-button{
	background:none;
	border:none;
	color:var(--primary);
	font-family:'Montserrat', sans-serif;
	font-size:1rem;
	font-weight:600;
	cursor:pointer;
	padding:8px 0;
	margin-bottom:24px;
	transition:color 0.2s;
	display:inline-block;
}
.back-button:hover{
	color:var(--accent);
	text-decoration:underline;
}
@keyframes fadeIn{
	from{opacity:0;transform:translateY(10px)}
	to{opacity:1;transform:translateY(0)}
}
.news-pagination{
	margin-top:24px;
	padding-top:20px;
	border-top:1px solid var(--line);
	display:flex;
	gap:12px;
	align-items:center;
	justify-content:center;
}
.news-pagination button{
	border:1px solid var(--line);
	background:#fff;
	color:var(--ink);
	font-family:'Montserrat', sans-serif;
	font-weight:600;
	border-radius:6px;
	padding:10px 20px;
	cursor:pointer;
	transition:all .2s;
}
.news-pagination button:hover:not(:disabled){
	background:var(--bg-light);
	border-color:var(--primary);
}
.news-pagination button:disabled{
	opacity:.4;
	cursor:not-allowed;
}
.news-pagination span{
	font-weight:600;
	color:var(--muted);
}
/* Category filter buttons */
.category-filters{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	margin:24px 0;
	padding:20px 0;
	border-bottom:1px solid var(--line);
}
.category-filter-btn{
	background:#fff;
	border:2px solid var(--line);
	color:var(--ink);
	font-family:'Montserrat', sans-serif;
	font-size:.9rem;
	font-weight:600;
	border-radius:20px;
	padding:8px 18px;
	cursor:pointer;
	transition:all 0.2s ease;
}
.category-filter-btn:hover{
	border-color:var(--primary);
	background:rgba(2,102,243,0.05);
	color:var(--primary);
}
.category-filter-btn.active{
	background:var(--primary);
	border-color:var(--primary);
	color:#fff;
}
.publication-year-filter{
	display:flex;
	align-items:center;
	gap:10px;
	margin:-4px 0 24px;
}
.publication-year-filter label{
	font-weight:600;
	color:var(--ink);
}
.publication-year-filter select{
	width:auto;
	min-width:110px;
}
.news-category-badge{
	display:inline-block;
	background:var(--primary);
	color:#fff;
	font-family:'Montserrat', sans-serif;
	font-size:.75rem;
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:0.5px;
	padding:4px 12px;
	border-radius:12px;
	margin-bottom:8px;
}
/* ── Home / Landing ─────────────────────────────────────── */
.home-hero{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:48px;
	align-items:center;
	padding:48px 0;
	border-bottom:2px solid var(--line);
}
.home-kicker{
	margin:0 0 12px;
	color:var(--primary);
	font-size:.95rem;
	font-family:'Montserrat', sans-serif;
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:.5px;
}
.home-title{
	margin:0 0 20px;
	font-size:2.8rem;
	line-height:1.15;
	color:var(--accent);
}
.home-description{
	margin:0 0 28px;
	line-height:1.7;
	color:var(--ink);
	font-size:1.05rem;
}
.home-cta{
	border:none;
	background:var(--primary);
	color:#fff;
	font-family:'Montserrat', sans-serif;
	font-weight:600;
	font-size:1rem;
	padding:14px 32px;
	border-radius:6px;
	cursor:pointer;
	transition:background .2s;
	box-shadow:0 4px 12px rgba(2,102,243,0.2);
}
.home-cta:hover{
	background:#0052c9;
	box-shadow:0 6px 16px rgba(2,102,243,0.3);
}
.home-hero-img{
	width:100%;
	border-radius:12px;
	object-fit:cover;
	max-height:400px;
	border:1px solid var(--line);
	box-shadow:0 8px 32px rgba(0,0,0,.08);
}
.home-latest{padding:48px 0 0}
.home-latest-heading{
	margin:0 0 28px;
	font-size:2rem;
	color:var(--accent);
}
.home-news-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:24px;
}
.home-news-card{
	background:#fff;
	border:1px solid var(--line);
	border-radius:12px;
	overflow:hidden;
	cursor:pointer;
	transition:all .2s;
}
.home-news-card:hover{
	box-shadow:0 8px 24px rgba(0,0,0,.1);
	transform:translateY(-2px);
}
.home-news-thumb{
	display:block;
	width:100%;
	aspect-ratio:16/10;
	object-fit:cover;
}
.home-news-card-body{padding:16px 18px 20px}
.home-news-card-title{
	margin:0 0 10px;
	font-size:1.1rem;
	line-height:1.4;
	font-weight:600;
	color:var(--ink);
}
.home-news-card-summary{
	margin:0;
	font-size:.92rem;
	color:var(--muted);
	line-height:1.6;
	display:-webkit-box;
	-webkit-line-clamp:3;
	-webkit-box-orient:vertical;
	overflow:hidden;
}
/* ── Collaborators ──────────────────────────────────────── */
.collaborators-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
	gap:24px;
	margin-top:20px;
}
.collaborator-card{
	position:relative;
	display:flex;
	flex-direction:column;
	align-items:center;
	text-align:center;
	padding:24px 20px;
	border:1px solid var(--line);
	border-radius:16px;
	background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);
}
.collaborator-card-edit-btn{
	position:absolute;
	top:14px;
	right:14px;
}
.collaborator-avatar{
	display:block;
	width:96px;
	height:96px;
	object-fit:cover;
	border-radius:50%;
	border:3px solid #fff;
	background:#fff;
	margin-bottom:14px;
}
.collaborator-name{
	margin:0 0 4px;
	font-size:1.05rem;
	line-height:1.3;
}
.collaborator-affiliation-block{
	margin:0 0 12px;
}
.collaborator-affiliation{
	margin:0;
	color:var(--muted);
	font-size:.9rem;
	line-height:1.5;
}
.collaborator-research-center{
	font-size:.82rem;
	opacity:.85;
}

/* ── Media ──────────────────────────────────────────────── */
.media-item{
	position:relative;
	border-top:1px solid var(--line);
	padding:20px 0;
	display:grid;
	grid-template-columns:140px 1fr;
	gap:20px;
	align-items:start;
	transition:all .2s;
}
.media-item:hover{
	padding-left:8px;
}
.media-item-edit-btn{
	position:absolute;
	top:16px;
	right:0;
}
.media-item-editable .media-body{
	padding-right:90px;
}
.media-date{
	margin:0;
	color:var(--muted);
	font-size:.9rem;
	font-weight:600;
	white-space:nowrap;
}
.media-title{
	display:block;
	margin:0 0 4px;
	font-size:1.05rem;
	font-weight:600;
	color:var(--ink);
	text-decoration:none;
}
.media-title:hover{
	color:var(--primary);
	text-decoration:underline;
}
.media-publication{
	margin:0;
	color:var(--muted);
	font-size:.9rem;
}

/* ── Contact ────────────────────────────────────────────── */
.contact-content{
	max-width:1000px;
	margin-top:20px;
}
.contact-columns{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:24px;
	align-items:start;
	margin-bottom:32px;
}
.contact-lab-focus .contact-paragraph{
	text-align:justify;
}
.contact-lab-focus .contact-paragraph:last-child{
	margin-bottom:0;
}
.contact-inline-email{
	color:var(--primary);
	text-decoration:none;
	font-weight:600;
}
.contact-inline-email:hover{
	text-decoration:underline;
}
.contact-columns-secondary{
	align-items:stretch;
}
.contact-frame{
	border:2px solid var(--primary);
	border-radius:10px;
	padding:20px;
}
.contact-frame .contact-section{
	margin-bottom:0;
}
.contact-frame .contact-section + .contact-section{
	margin-top:24px;
}
.contact-frame-edi{
	background:var(--bg-light);
	border-color:var(--line);
}
.contact-frame-iric{
	background:var(--primary);
	border-color:var(--primary);
}
.contact-frame-iric h3{
	color:#fff;
}
.contact-iric-list{
	color:#fff;
}
.contact-iric-list a{
	color:#fff;
	text-decoration:underline;
}
.contact-iric-list a:hover{
	text-decoration:none;
}
.contact-status-banner{
	padding:16px 20px;
	border-radius:10px;
	background:var(--bg-light);
	border:1px solid var(--line);
	font-weight:600;
	text-align:center;
	margin-bottom:24px;
}
.contact-paragraph{
	line-height:1.7;
	color:var(--ink);
	margin:0 0 16px;
}
.contact-section{
	margin-bottom:32px;
}
.contact-section h3{
	margin:0 0 12px;
}
.contact-list{
	margin:0 0 16px;
	padding-left:20px;
	line-height:1.7;
	color:var(--ink);
}
.contact-emails a{
	color:var(--primary);
	text-decoration:none;
	font-weight:600;
}
.contact-emails a:hover{
	text-decoration:underline;
}
@media (max-width:760px){
	.contact-columns{
		grid-template-columns:1fr;
	}
}

/* ── Members ───────────────────────────────────────────── */
.members-sections{
	display:flex;
	flex-direction:column;
	gap:40px;
}
.members-section{
	padding-top:8px;
}
.members-section-header{
	margin-bottom:18px;
	padding-bottom:14px;
	border-bottom:1px solid var(--line);
}
.members-section-title{
	margin:0;
	font-size:1.9rem;
	line-height:1.2;
	color:var(--accent);
}
.members-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
	gap:24px;
}
.member-card{
	position:relative;
	display:grid;
	grid-template-columns:112px 1fr;
	gap:18px;
	align-items:start;
	padding:20px;
	border:1px solid var(--line);
	border-radius:16px;
	background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);
}
.member-card-featured{
	grid-template-columns:180px 1fr;
	background:#fff;
	border-color:rgba(2,102,243,.28);
	position:relative;
}
.member-card-student{
	display:flex;
	flex-direction:column;
	align-items:center;
	text-align:center;
	min-height:420px;
	height:100%;
	padding:24px 20px;
	background:#fff;
}
.member-avatar{
	display:block;
	width:112px;
	height:112px;
	object-fit:cover;
	border-radius:18px;
	border:3px solid #fff;
	background:#fff;
}
.member-avatar-featured{
	width:180px;
	height:180px;
	border-radius:24px;
}
.member-copy h3{
	margin:0 0 6px;
	font-size:1.2rem;
	line-height:1.3;
}
.member-copy-student{
	display:flex;
	flex:1;
	flex-direction:column;
	align-items:center;
	width:100%;
	text-align:center;
}
.member-role{
	margin:0 0 12px;
	color:var(--primary);
	font-family:'Montserrat', sans-serif;
	font-size:.95rem;
	font-weight:600;
}
.member-meta{
	margin:0;
	color:var(--ink);
	font-size:.95rem;
	line-height:1.6;
}
.member-bio{
	margin:0;
	color:var(--ink);
	line-height:1.7;
}
.member-bio-preview{
	text-align:justify;
	width:100%;
	margin-top:8px;
}
.member-bio-featured{
	text-align:justify;
}
.member-read-more{
	color:var(--primary);
	font-family:'Montserrat', sans-serif;
	font-size:.9rem;
	font-weight:600;
	text-decoration:none;
}
.member-read-more:hover{
	text-decoration:underline;
}
.member-publications-link{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	margin-top:18px;
	padding:12px 22px;
	border-radius:6px;
	background:var(--primary);
	color:#fff;
	font-family:'Montserrat', sans-serif;
	font-size:.95rem;
	font-weight:600;
	text-decoration:none;
	transition:background .2s;
}
.member-publications-link:hover{
	background:#0052c9;
}
.member-inline-edit{
	position:absolute;
	bottom:14px;
	right:14px;
	margin-top:0;
	padding:8px 14px;
	font-size:.88rem;
	line-height:1.2;
}
.member-avatar-wrap{
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:14px;
}
.member-social-links{
	display:flex;
	justify-content:center;
	align-items:center;
	gap:12px;
}
.member-social-icon{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:34px;
	height:34px;
	border-radius:50%;
	background:var(--bg-light);
	color:var(--primary);
	transition:background .2s, color .2s;
}
.member-social-icon:hover{
	background:var(--primary);
	color:#fff;
}
.member-card-bottom{
	margin-top:auto;
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:12px;
}
.member-card-featured .member-copy{
	padding-bottom:48px;
}
.member-card-alumni{
	align-items:stretch;
}
.member-card-alumni .member-copy{
	display:flex;
	flex-direction:column;
	width:100%;
}
.member-detail-page{
	max-width:1100px;
}
.member-detail-hero{
	display:grid;
	grid-template-columns:1fr 260px;
	gap:28px;
	align-items:start;
}
.member-detail-name{
	margin:0 0 8px;
	font-size:2.1rem;
	line-height:1.2;
	color:var(--accent);
}
.member-detail-status{
	margin:0;
	color:var(--primary);
	font-family:'Montserrat', sans-serif;
	font-size:1.05rem;
	font-weight:600;
}
.member-detail-avatar{
	width:260px;
	height:260px;
	object-fit:cover;
	border-radius:24px;
	border:3px solid #fff;
	background:#fff;
}
.member-detail-bio{
	margin:16px 0 0;
	line-height:1.8;
	text-align:justify;
}
.member-detail-panels{
	margin-top:30px;
	display:grid;
	grid-template-columns:1fr 1fr 2fr;
	gap:20px;
	align-items:start;
}
.member-detail-panel{
	border:1px solid var(--line);
	border-radius:14px;
	padding:16px;
	background:#fff;
	height:100%;
}
.member-detail-panel h3{
	margin:0 0 10px;
	font-size:1.05rem;
	color:var(--accent);
}
.member-link-list{
	margin:0;
	padding-left:18px;
	line-height:1.6;
}
.member-link-list a{
	color:var(--primary);
	text-decoration:none;
}
.member-link-list a:hover{
	text-decoration:underline;
}
.member-project-title{
	margin:0 0 10px;
	font-size:1rem;
	line-height:1.4;
}
.member-project-image{
	display:block;
	width:100%;
	max-height:180px;
	object-fit:cover;
	border-radius:10px;
	border:1px solid var(--line);
	margin-bottom:12px;
}
.member-project-overview{
	margin:0;
	line-height:1.7;
}
.member-panel-empty{
	margin:0;
	color:var(--muted);
	font-style:italic;
}
.member-news-section{
	margin-top:30px;
	border:1px solid var(--line);
	border-radius:14px;
	padding:20px;
	background:#fff;
}
.member-news-section h3{
	margin:0 0 16px;
	font-size:1.05rem;
	color:var(--accent);
}
.member-news-grid{
	display:grid;
	grid-template-columns:repeat(4, 1fr);
	gap:16px;
	margin-bottom:16px;
}
.member-news-thumb-card{
	cursor:pointer;
	border:1px solid var(--line);
	border-radius:10px;
	overflow:hidden;
	background:#fff;
	transition:box-shadow .2s, transform .2s;
}
.member-news-thumb-card:hover{
	box-shadow:0 6px 18px rgba(0,0,0,.1);
	transform:translateY(-2px);
}
.member-news-thumb-img{
	width:100%;
	height:110px;
	object-fit:cover;
	display:block;
}
.member-news-thumb-body{
	padding:10px 12px;
}
.member-news-thumb-date{
	margin:0 0 4px;
	font-size:.78rem;
	color:var(--muted);
}
.member-news-thumb-title{
	margin:0;
	font-size:.92rem;
	font-weight:600;
	line-height:1.35;
}
.member-news-readmore-btn{
	background:none;
	border:none;
	padding:0;
	color:var(--primary);
	font-family:'Montserrat', sans-serif;
	font-weight:600;
	font-size:.92rem;
	cursor:pointer;
}
.member-news-readmore-btn:hover{
	text-decoration:underline;
}

/* ── Posters Gallery ───────────────────────────────────── */
.posters-gallery-grid{
	column-width:280px;
	column-gap:14px;
}
.poster-gallery-card{
	display:inline-block;
	width:100%;
	border:1px solid var(--line);
	border-radius:12px;
	padding:8px;
	margin:0 0 14px;
	background:#fff;
	overflow:hidden;
	break-inside:avoid;
}
.poster-gallery-card-active{
	border-color:var(--primary);
	outline:2px solid rgba(2,102,243,.15);
}
.poster-gallery-button{
	display:block;
	width:100%;
	padding:0;
	border:none;
	background:transparent;
	cursor:pointer;
}
.poster-gallery-image{
	width:100%;
	height:auto;
	display:block;
	object-fit:contain;
	border-radius:8px;
	background:#f8fbff;
}
.poster-gallery-more{
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:8px;
	margin-top:20px;
	text-align:center;
}
.poster-gallery-more .btn-secondary{
	min-width:160px;
}
.poster-gallery-more-count{
	margin:0;
	color:var(--muted);
	font-size:.92rem;
	font-weight:600;
}
.poster-modal-overlay{
	padding:18px;
}
.poster-modal{
	position:relative;
	display:flex;
	width:min(96vw, 1600px);
	height:min(92vh, 980px);
	background:#fff;
	border-radius:18px;
	overflow:hidden;
	box-shadow:0 24px 70px rgba(0,0,0,.35);
}
.poster-modal-image-panel{
	flex:1 1 auto;
	min-width:0;
	background:#0f1720;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:24px;
}
.poster-modal-image{
	max-width:100%;
	max-height:100%;
	object-fit:contain;
	border-radius:12px;
	box-shadow:0 14px 40px rgba(0,0,0,.2);
}
.poster-modal-info{
	position:relative;
	width:min(420px, 34vw);
	min-width:320px;
	padding:28px;
	overflow-y:auto;
	border-left:1px solid var(--line);
	background:linear-gradient(180deg,#ffffff 0%, #f8fbff 100%);
}
.poster-modal-info-editable{
	padding-top:64px;
}
.poster-modal-edit-btn{
	position:absolute;
	top:16px;
	left:16px;
}
.poster-modal-title{
	margin:0 0 8px;
	font-size:1.65rem;
	line-height:1.2;
}
.poster-modal-meta{
	margin:0;
	color:var(--muted);
	font-weight:600;
	letter-spacing:.02em;
}
.poster-modal-section{
	margin-top:18px;
}
.poster-modal-section h4{
	margin:0 0 8px;
	font-size:.82rem;
	text-transform:uppercase;
	letter-spacing:.1em;
	color:var(--muted);
}
.poster-modal-section p{
	margin:0;
	line-height:1.6;
}
.poster-modal-abstract{
	white-space:pre-wrap;
}
.poster-modal-tags{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
}
.poster-tag{
	display:inline-flex;
	align-items:center;
	padding:8px 12px;
	border-radius:999px;
	background:rgba(2,102,243,.12);
	color:var(--primary);
	text-decoration:none;
	font-weight:600;
	font-size:.92rem;
}
.poster-tag:hover{
	background:rgba(2,102,243,.18);
	text-decoration:none;
}
.poster-editor-modal{
	background:#fff;
	border-radius:12px;
	max-width:920px;
	width:100%;
	max-height:90vh;
	overflow-y:auto;
	padding:32px;
	position:relative;
	box-shadow:0 20px 60px rgba(0,0,0,0.3);
}
.poster-student-picker{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
}
.poster-student-option{
	display:inline-flex;
	align-items:center;
	gap:8px;
	padding:8px 12px;
	border:1px solid var(--line);
	border-radius:999px;
	background:#fff;
	font-weight:600;
	font-size:.92rem;
	cursor:pointer;
}
.poster-student-option input{
	margin:0;
}
.poster-student-select{
	min-height:160px;
	padding:8px;
}
/* ── Generic card ───────────────────────────────────────── */
.card{
	background:#fff;
	border:1px solid var(--line);
	border-radius:8px;
	padding:14px;
	margin-bottom:10px;
}
.lang-toggle{
	display:flex;
	align-items:center;
	justify-content:flex-end;
}
.lang-trigger{
	display:flex;
	align-items:center;
	gap:6px;
	padding:8px 16px;
	border:none;
	border-radius:6px;
	background:rgba(255,255,255,0.15);
	color:#fff;
	cursor:pointer;
	font-family:'Montserrat', sans-serif;
	font-weight:600;
	font-size:.9rem;
	transition:all .2s;
}
.lang-trigger:hover{
	background:rgba(255,255,255,0.25);
}
.lang-trigger.active{
	background:#fff;
	color:var(--primary);
	box-shadow:0 2px 6px rgba(0,0,0,0.15);
}
.lang-trigger-caret{
	font-size:.65rem;
	line-height:1;
}
.lang-dropdown-menu{
	min-width:90px;
}
footer{
	text-align:center;
	margin-top:64px;
	padding:32px 0;
	color:var(--muted);
	font-size:.9rem;
	border-top:1px solid var(--line);
}
.admin-link{
	color:var(--muted);
	text-decoration:none;
	margin-left:8px;
	transition:color .2s;
}
.admin-link:hover{
	color:var(--primary);
	text-decoration:underline;
}

/* Admin Modal */
.modal-overlay{
	position:fixed;
	top:0;
	left:0;
	width:100%;
	height:100%;
	background:rgba(0,0,0,0.6);
	backdrop-filter:blur(4px);
	display:flex;
	align-items:center;
	justify-content:center;
	z-index:2000;
	padding:20px;
}
.admin-login-modal{
	background:#fff;
	border-radius:12px;
	max-width:450px;
	width:100%;
	padding:32px;
	position:relative;
	box-shadow:0 20px 60px rgba(0,0,0,0.3);
}
.admin-login-modal h2{
	margin:0 0 24px;
	color:var(--primary);
	font-size:1.5rem;
}
.modal-close{
	position:absolute;
	top:12px;
	right:16px;
	background:transparent;
	border:none;
	font-size:2rem;
	line-height:1;
	cursor:pointer;
	color:var(--muted);
	transition:color .2s;
	padding:0;
	width:32px;
	height:32px;
	display:flex;
	align-items:center;
	justify-content:center;
}
.modal-close:hover{
	color:var(--ink);
}
.form-group{
	margin-bottom:20px;
}
.form-group label{
	display:block;
	margin-bottom:6px;
	font-weight:600;
	color:var(--ink);
	font-size:.95rem;
}
.form-input{
	width:100%;
	padding:10px 14px;
	border:1px solid var(--line);
	border-radius:6px;
	font-size:1rem;
	font-family:inherit;
	transition:border-color .2s;
}
.form-input:focus{
	outline:none;
	border-color:var(--primary);
	box-shadow:0 0 0 3px rgba(2,102,243,0.1);
}
.error-message{
	padding:10px 14px;
	background:#fee;
	color:#c00;
	border-radius:6px;
	margin-bottom:16px;
	font-size:.9rem;
}
.success-message{
	padding:10px 14px;
	background:#eef8ef;
	color:#0a6b1f;
	border-radius:6px;
	margin-bottom:16px;
	font-size:.9rem;
}
.news-feedback-banner{
	display:flex;
	justify-content:space-between;
	align-items:center;
	gap:16px;
	padding:14px 20px;
	border-radius:8px;
	margin-bottom:24px;
	font-size:.95rem;
	font-weight:600;
	border-left:4px solid transparent;
}
.news-feedback-banner-success{
	background:#eef8ef;
	color:#0a6b1f;
	border-left-color:#0a6b1f;
}
.news-feedback-banner-error{
	background:#fee;
	color:#c00;
	border-left-color:#c00;
}
.news-feedback-close{
	background:none;
	border:none;
	color:inherit;
	font-size:1.3rem;
	line-height:1;
	cursor:pointer;
	padding:0 4px;
	opacity:.7;
}
.news-feedback-close:hover{
	opacity:1;
}
.btn-primary{
	background:var(--primary);
	color:#fff;
	border:none;
	padding:12px 24px;
	border-radius:6px;
	font-size:1rem;
	font-weight:600;
	cursor:pointer;
	transition:background .2s;
}
.btn-primary:hover{
	background:#0052c9;
}
.btn-secondary{
	background:var(--bg-light);
	color:var(--ink);
	border:none;
	padding:12px 24px;
	border-radius:6px;
	font-size:1rem;
	font-weight:600;
	cursor:pointer;
	transition:background .2s;
}
.btn-secondary:hover{
	background:#e9ecef;
}
.btn-edit{
	background:var(--bg-light);
	color:var(--ink);
	border:1px solid #000;
	padding:12px 24px;
	border-radius:6px;
	font-size:1rem;
	font-weight:600;
	cursor:pointer;
	transition:background .2s;
}
.btn-edit:hover{
	background:#e9ecef;
}
.btn-add{
	background:#fff;
	color:var(--primary);
	border:1px solid var(--primary);
	padding:12px 24px;
	border-radius:6px;
	font-size:1rem;
	font-weight:600;
	cursor:pointer;
	transition:background .2s;
}
.btn-add:hover{
	background:rgba(2,102,243,0.05);
}

/* Admin News Modal */
.admin-news-modal{
	background:#fff;
	border-radius:12px;
	max-width:800px;
	width:100%;
	max-height:90vh;
	overflow-y:auto;
	padding:32px;
	position:relative;
	box-shadow:0 20px 60px rgba(0,0,0,0.3);
}
.admin-news-modal h2{
	margin:0 0 24px;
	color:var(--primary);
	font-size:1.5rem;
}
.news-form{
	display:flex;
	flex-direction:column;
	gap:16px;
}
.form-row{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:16px;
}
.news-form .form-group{
	margin-bottom:0;
}
.news-form textarea{
	font-family:inherit;
	resize:vertical;
}
.form-actions{
	display:flex;
	gap:12px;
	justify-content:flex-end;
	margin-top:8px;
	padding-top:20px;
	border-top:1px solid var(--line);
}

/* Admin Home Edit */
.admin-home-edit{
	background:#fff;
	border:2px solid var(--primary);
	border-radius:12px;
	padding:28px;
	margin-bottom:40px;
	box-shadow:0 4px 16px rgba(2,102,243,0.15);
}
.admin-home-edit h3{
	margin:0 0 24px;
	color:var(--primary);
	font-size:1.4rem;
	font-weight:600;
}
.admin-home-edit .form-group{
	margin-bottom:20px;
}
.admin-home-edit label{
	display:block;
}
.admin-home-edit label strong{
	display:block;
	margin-bottom:8px;
	color:var(--ink);
	font-size:.95rem;
	font-weight:600;
}
.admin-home-edit textarea,
.admin-home-edit input[type="text"],
.admin-home-edit input[type="file"]{
	width:100%;
	padding:10px 14px;
	border:1px solid var(--line);
	border-radius:6px;
	font-size:1rem;
	font-family:inherit;
	transition:border-color .2s;
	box-sizing:border-box;
	margin-bottom:8px;
}
.admin-home-edit textarea:focus,
.admin-home-edit input[type="text"]:focus{
	outline:none;
	border-color:var(--primary);
	box-shadow:0 0 0 3px rgba(2,102,243,0.1);
}
.admin-home-edit small{
	display:block;
	margin:8px 0 4px;
	color:var(--muted);
	font-size:.85rem;
}
.admin-home-edit .btn-primary{
	margin-top:12px;
}

.alumni-show-more{
	margin-top:20px;
	text-align:center;
}
.alumni-show-more-btn{
	background:none;
	border:2px solid var(--primary);
	color:var(--primary);
	font-family:'Montserrat', sans-serif;
	font-weight:600;
	font-size:.95rem;
	padding:10px 28px;
	border-radius:6px;
	cursor:pointer;
	transition:all .2s;
}
.alumni-show-more-btn:hover{
	background:var(--primary);
	color:#fff;
}
.admin-members-layout{
	display:grid;
	grid-template-columns:1fr;
	gap:20px;
}
.admin-members-toolbar{
	display:flex;
	justify-content:flex-end;
}
.admin-members-toolbar-header{
	justify-content:space-between;
	align-items:center;
	gap:16px;
	flex-wrap:wrap;
	margin-bottom:16px;
}
.admin-members-toolbar-header h3{
	margin:0;
}
.admin-member-sections{
	display:grid;
	grid-template-columns:1fr;
	gap:16px;
}
.admin-member-section h4{
	margin:4px 0 10px;
	color:var(--accent);
	font-size:1.05rem;
}
.admin-member-card{
	display:flex;
	justify-content:space-between;
	align-items:flex-start;
	gap:12px;
	padding:12px 14px;
	border:1px solid var(--line);
	border-radius:10px;
	background:#fff;
	margin-bottom:8px;
}
.admin-member-name{
	margin:0 0 4px;
	font-weight:700;
	line-height:1.3;
}
.admin-member-role{
	margin:0;
	font-size:.92rem;
	color:var(--muted);
	line-height:1.4;
}
.btn-edit-inline{
	padding:8px 14px;
	font-size:.9rem;
	line-height:1.2;
	white-space:nowrap;
}

@media (max-width:700px){
	.site-header{
		grid-template-columns:1fr;
		gap:16px;
		padding:16px 20px;
	}
	.site-header h1{
		font-size:1.5rem;
	}
	.header-nav{
		justify-content:flex-start;
	}
	.nav-more-dropdown{
		right:auto;
		left:0;
	}
	.header-nav button{
		padding:8px 16px;
		font-size:.85rem;
	}
	.news-page-header h2{
		font-size:2rem;
	}
	.news-title{
		font-size:1.25rem;
	}
	.news-item{
		grid-template-columns:1fr;
		gap:16px;
		padding:20px 0;
	}
	.project-card{
		grid-template-columns:1fr;
		gap:16px;
		padding:20px 0;
	}
	.news-detail-title{
		font-size:1.8rem;
	}
	.home-hero{
		grid-template-columns:1fr;
		gap:24px;
		padding:32px 0;
	}
	.home-hero-img{
		max-height:240px;
	}
	.home-title{
		font-size:2rem;
	}
	.home-latest-heading{
		font-size:1.5rem;
	}
	.home-news-grid{
		grid-template-columns:1fr;
	}
	.members-sections{
		gap:32px;
	}
	.members-section-title{
		padding:12px;
	}
	.member-detail-hero{
		grid-template-columns:1fr;
	}
	.member-detail-panels{
		grid-template-columns:1fr;
	}
	.project-detail-panels{
		grid-template-columns:1fr;
	}
	.member-detail-avatar{
		width:180px;
		height:180px;
	}
	.member-news-grid{
		grid-template-columns:repeat(2, 1fr);
	}
	.member-card-featured{
		grid-template-columns:1fr;
	}
	.member-card{
		grid-template-columns:1fr;
		justify-items:center;
		text-align:center;
	}
	.member-card-alumni{
		grid-template-columns:96px 1fr;
	}
	.member-copy h3,
	.member-role,
	.member-meta,
	.member-bio{
		text-align:left;
		width:100%;
	}
	.poster-modal-overlay{
		padding:14px;
	}
	.poster-modal{
		flex-direction:column;
		height:auto;
		max-height:92vh;
	}
	.poster-modal-image-panel{
		height:48vh;
		padding:16px;
	}
	.poster-modal-info{
		width:auto;
		min-width:0;
		border-left:none;
		border-top:1px solid var(--line);
	}
	.lang-toggle{
		margin-top:16px;
		justify-content:flex-start;
	}
}

@media (max-width:560px){
	.members-grid{
		grid-template-columns:1fr;
	}
	.member-card{
		padding:16px;
	}
	.member-card-student{
		min-height:0;
	}
	.member-avatar{
		width:96px;
		height:96px;
	}
	.member-avatar-featured{
		width:136px;
		height:136px;
	}
	.poster-gallery-image{
		height:180px;
	}
}
