/*
 * Koodak Spectrum V2.3
 * Heritage layer: the familiar wave language and the logo palette,
 * applied over the modern V2 interaction system.
 */

:root {
	--ks-heritage-cream: #fff1d2;
	--ks-heritage-paper: #fffdf9;
	--ks-heritage-cyan: #24c2dc;
	--ks-heritage-cyan-deep: #0d9fc2;
	--ks-heritage-green: #25db70;
	--ks-heritage-green-deep: #12b95c;
	--ks-heritage-pink: #ff5594;
	--ks-heritage-yellow: #ffbd42;
	--ks-heritage-ink: #17364a;
}

body {
	background: var(--ks-heritage-paper);
}

/* Light, familiar navigation on the front page. */
.ks-is-front .ks-site-header,
.ks-is-front .ks-site-header.ks-header-scrolled {
	background: rgba(255, 255, 255, 0.92);
	box-shadow: 0 14px 38px rgba(22, 66, 89, 0.09);
	color: var(--ks-heritage-ink);
	backdrop-filter: blur(20px) saturate(145%);
}

.ks-is-front .ks-brand__words strong,
.ks-is-front .ks-brand:hover,
.ks-is-front .ks-menu a,
.ks-is-front .ks-header-login {
	color: var(--ks-heritage-ink);
}

.ks-is-front .ks-brand__words small {
	color: #6e8290;
}

.ks-is-front .ks-menu a:hover,
.ks-is-front .ks-menu .current-menu-item > a,
.ks-is-front .ks-menu .current_page_item > a,
.ks-is-front .ks-menu .current-menu-ancestor > a {
	background: #eaf9fc;
	color: var(--ks2-blue);
}

.ks-is-front .ks-icon-button,
.ks-is-front .ks-header-login,
.ks-is-front .ks-nav-toggle {
	border-color: rgba(23, 54, 74, 0.1);
	background: rgba(255, 255, 255, 0.78);
	color: var(--ks-heritage-ink);
}

.ks-is-front .ks-header-login:hover,
.ks-is-front .ks-icon-button:hover,
.ks-is-front .ks-nav-toggle:hover {
	border-color: rgba(7, 139, 211, 0.28);
	background: #eaf9fc;
	color: var(--ks2-blue);
}

.ks-is-front .ks-menu .sub-menu {
	border-color: rgba(23, 54, 74, 0.08);
	background: rgba(255, 255, 255, 0.97);
	box-shadow: 0 24px 65px rgba(23, 54, 74, 0.14);
}

.ks-is-front .ks-brand-ribbon {
	opacity: 1;
}

/* Warm hero with the same modern stage and slider. */
.ks2-hero {
	background:
		radial-gradient(circle at 78% 17%, rgba(255, 189, 66, 0.34), transparent 28%),
		radial-gradient(circle at 12% 80%, rgba(255, 85, 148, 0.11), transparent 28%),
		linear-gradient(135deg, #fff4dc 0%, #ffe8b7 56%, #fff6e5 100%);
	color: var(--ks-heritage-ink);
}

.ks2-hero::before {
	position: absolute;
	inset: 5% -4% 8% 58%;
	z-index: -1;
	background: url("../images/logo-mark.png") center / contain no-repeat;
	content: "";
	opacity: 0.035;
	transform: rotate(-9deg);
}

.ks2-hero::after {
	height: 112px;
	background: url("../images/wave-hero.svg") center bottom / 100% 100% no-repeat;
	clip-path: none;
}

.ks2-hero__mesh {
	background-image:
		linear-gradient(rgba(23, 54, 74, 0.035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(23, 54, 74, 0.035) 1px, transparent 1px);
	mask-image: linear-gradient(to bottom, black, transparent 92%);
}

.ks2-hero__mesh::before {
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.36), transparent);
}

.ks2-hero__noise {
	opacity: 0.035;
}

.ks2-hero__orb--green {
	background: radial-gradient(circle at 35% 35%, rgba(44, 232, 114, 0.28), rgba(44, 232, 114, 0));
}

.ks2-hero__orb--pink {
	background: radial-gradient(circle at 55% 40%, rgba(255, 85, 148, 0.17), rgba(255, 85, 148, 0));
}

.ks2-hero__orb--cyan {
	background: radial-gradient(circle, rgba(37, 204, 233, 0.22), transparent 68%);
}

.ks2-live-label {
	border-color: rgba(23, 54, 74, 0.09);
	background: rgba(255, 255, 255, 0.67);
	box-shadow: 0 10px 30px rgba(23, 54, 74, 0.06);
	color: #506a79;
}

.ks2-hero h1 {
	color: var(--ks-heritage-ink);
}

.ks2-hero h1 span {
	background: linear-gradient(90deg, #078bd3, #20bf72 36%, #f3a916 68%, #ed4f8a);
	background-clip: text;
	-webkit-background-clip: text;
}

.ks2-hero__lead {
	color: #536d7c;
}

.ks2-button--glass {
	border-color: rgba(23, 54, 74, 0.1);
	background: rgba(255, 255, 255, 0.66);
	box-shadow: 0 12px 30px rgba(23, 54, 74, 0.06);
	color: var(--ks-heritage-ink);
}

.ks2-button--glass:hover {
	border-color: rgba(7, 139, 211, 0.22);
	background: #fff;
	color: var(--ks2-blue);
}

.ks2-button__play {
	background: rgba(7, 139, 211, 0.09);
	color: var(--ks2-blue);
}

.ks2-proof p {
	color: #667d8a;
}

.ks2-proof strong {
	color: var(--ks-heritage-ink);
}

.ks2-proof__avatar {
	border-color: #ffedca;
}

.ks2-stage__frame {
	border: 8px solid rgba(255, 255, 255, 0.9);
	border-radius: 36px;
	background: #fff;
	box-shadow: 0 35px 85px rgba(79, 59, 24, 0.2);
	transform: rotateY(calc(var(--ks-mx, 0) * 2.2deg)) rotateX(calc(var(--ks-my, 0) * -2.2deg)) rotate(-0.45deg);
}

.ks2-stage__rings span {
	border-color: rgba(7, 139, 211, 0.22);
}

.ks2-stage__rings span:nth-child(2) {
	border-color: rgba(37, 219, 112, 0.24);
}

.ks2-stage__rings span:nth-child(3) {
	border-color: rgba(255, 85, 148, 0.23);
}

.ks2-float-card {
	border-color: rgba(23, 54, 74, 0.08);
	background: rgba(255, 255, 255, 0.86);
	box-shadow: 0 18px 45px rgba(46, 69, 77, 0.15);
	color: var(--ks-heritage-ink);
}

.ks2-float-card > span {
	background: #eafbf1;
}

.ks2-float-card small {
	color: #71848f;
}

.ks2-scroll-cue {
	color: rgba(23, 54, 74, 0.5);
}

.ks2-scroll-cue span {
	border-color: rgba(23, 54, 74, 0.24);
}

/* White breathing room followed by friendly brand-colour cards. */
.ks2-marquee {
	background: var(--ks-heritage-paper);
}

.ks2-bento-section {
	background:
		radial-gradient(circle at 7% 12%, rgba(37, 204, 233, 0.1), transparent 24%),
		radial-gradient(circle at 93% 85%, rgba(44, 232, 114, 0.09), transparent 24%),
		var(--ks-heritage-paper);
}

.ks2-bento__item {
	border-color: rgba(23, 54, 74, 0.07);
	box-shadow: 0 16px 44px rgba(35, 74, 94, 0.07);
}

.ks2-bento__item--programs {
	background:
		radial-gradient(circle at 16% 14%, rgba(255, 255, 255, 0.28), transparent 25%),
		url("../images/logo-mark.png") -8% 112% / 46% auto no-repeat,
		linear-gradient(145deg, #24c9df, #0e9fc2);
}

.ks2-bento__item--programs .ks2-bento__index,
.ks2-bento__item--programs .ks2-bento__copy small,
.ks2-bento__item--programs .ks2-bento__copy p {
	color: rgba(255, 255, 255, 0.72);
}

.ks2-bento__item--research {
	background: linear-gradient(145deg, #e0f9ff, #f5fdff);
}

.ks2-bento__item--members {
	background: linear-gradient(145deg, #ffe3ef, #fff6f9);
}

.ks2-bento__item--media {
	background:
		radial-gradient(circle at 12% 60%, rgba(255, 189, 66, 0.38), transparent 28%),
		linear-gradient(120deg, #fff1ca, #fffaf0);
}

/* Cyan editorial field recalls the original workshop band; cards remain premium. */
.ks2-editorial {
	padding-bottom: 122px;
	background:
		radial-gradient(circle at 91% 8%, rgba(255, 255, 255, 0.18), transparent 25%),
		radial-gradient(circle at 5% 88%, rgba(7, 139, 211, 0.24), transparent 24%),
		linear-gradient(145deg, #28c8df, #17b8d2 57%, #0aa3c3);
}

.ks2-editorial::before {
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.055) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.055) 1px, transparent 1px);
}

.ks2-editorial::after {
	position: absolute;
	right: 0;
	bottom: -1px;
	left: 0;
	z-index: 1;
	height: 106px;
	background: url("../images/wave-cyan-end.svg") center bottom / 100% 100% no-repeat;
	content: "";
	pointer-events: none;
}

.ks2-section-head--light .ks2-kicker {
	color: #fff;
}

.ks2-all-link {
	border-color: rgba(255, 255, 255, 0.36);
	background: rgba(255, 255, 255, 0.09);
}

.ks2-story {
	border-color: rgba(255, 255, 255, 0.24);
	box-shadow: 0 22px 58px rgba(3, 73, 91, 0.24);
}

.ks2-topics > span {
	color: rgba(255, 255, 255, 0.72);
}

.ks2-topics a {
	border-color: rgba(255, 255, 255, 0.24);
	background: rgba(255, 255, 255, 0.1);
	color: rgba(255, 255, 255, 0.88);
}

.ks2-topics a:hover {
	border-color: #fff;
	background: rgba(255, 255, 255, 0.18);
}

/* Association story: calm paper, recognisable green closing band. */
.ks2-manifesto {
	background:
		radial-gradient(circle at 18% 48%, rgba(37, 204, 233, 0.09), transparent 28%),
		linear-gradient(180deg, #fff9ee, #f5fbfb);
}

.ks2-logo-reactor__core {
	background: rgba(255, 255, 255, 0.82);
}

.ks2-metrics {
	border-color: rgba(255, 255, 255, 0.95);
	background: rgba(255, 255, 255, 0.72);
}

.ks2-final-cta {
	background:
		radial-gradient(circle at 12% 15%, rgba(255, 255, 255, 0.17), transparent 23%),
		url("../images/logo-mark.png") 8% 52% / 290px auto no-repeat,
		linear-gradient(135deg, #27dc72, #16c969 55%, #10b85c);
	color: #fff;
}

.ks2-final-cta::before {
	opacity: 0.45;
}

.ks2-final-cta h2 {
	color: #fff;
}

.ks2-final-cta .ks2-button--dark {
	background: #fff;
	box-shadow: 0 17px 38px rgba(2, 89, 43, 0.2);
	color: var(--ks-heritage-ink);
}

.ks2-final-cta .ks2-button--dark:hover {
	background: #fff4d8;
	color: var(--ks-heritage-ink);
}

.ks2-final-cta .ks2-text-link--dark {
	color: #fff;
}

/* Internal pages use the same soft brand world. */
body:not(.ks-is-front) .ks-site-header {
	background: rgba(255, 255, 255, 0.94);
}

.ks-page-hero,
.ks-article-hero {
	background:
		radial-gradient(circle at 16% 20%, rgba(37, 204, 233, 0.18), transparent 22%),
		radial-gradient(circle at 88% 76%, rgba(44, 232, 114, 0.14), transparent 24%),
		linear-gradient(135deg, #fff0cb, #fffaf0);
}

.ks-page-card,
.ks-article,
.ks-widget,
.ks-contact-form-card,
.ks-member-card {
	border-color: rgba(23, 54, 74, 0.07);
	box-shadow: 0 20px 55px rgba(35, 74, 94, 0.08);
}

/* Cream footer and colourful wave restore the recognisable closing signature. */
.ks-site-footer {
	background: #fff8eb;
}

.ks-footer-wave {
	background: #12b95c;
}

.ks-footer-wave__base {
	fill: #fff8eb;
}

.ks-footer-wave__line {
	stroke: var(--ks-heritage-cyan);
}

.ks-footer-main {
	background:
		radial-gradient(circle at 12% 10%, rgba(37, 204, 233, 0.08), transparent 22%),
		#fff8eb;
	color: #71818d;
}

.ks-footer-brand {
	border-bottom-color: rgba(23, 54, 74, 0.08);
}

.ks-footer-brand .ks-brand__words strong,
.ks-footer-column h2,
.ks-footer-column h2 a,
.ks-footer-contact a,
.ks-footer-menu a,
.ks-footer-brand .ks-brand:hover {
	color: var(--ks-heritage-ink);
}

.ks-footer-brand .ks-brand__words small,
.ks-footer-brand > p,
.ks-footer-contact > p {
	color: #71818d;
}

.ks-footer-menu a::before {
	background: rgba(7, 139, 211, 0.4);
}

.ks-footer-column h2 a:hover,
.ks-footer-menu a:hover,
.ks-footer-contact a:hover {
	color: var(--ks2-blue);
}

.ks-socials a {
	border: 1px solid rgba(23, 54, 74, 0.07);
	background: #fff;
}

.ks-footer-bottom {
	border-top: 0;
	background: #4f6f7e;
	color: rgba(255, 255, 255, 0.84);
}

.ks-footer-bottom a {
	color: #fff;
}

@media (max-width: 980px) {
	.ks-is-front .ks-primary-nav {
		background: rgba(255, 255, 255, 0.98);
	}

	.ks-is-front .ks-primary-nav .ks-menu a {
		color: var(--ks-heritage-ink);
	}

	.ks2-hero::before {
		inset: 12% 35% 18% -14%;
	}

	.ks2-editorial {
		padding-bottom: 110px;
	}
}

@media (max-width: 720px) {
	.ks2-hero::after {
		height: 76px;
	}

	.ks2-stage__frame {
		border-width: 5px;
		border-radius: 27px;
	}

	.ks2-editorial {
		padding-bottom: 88px;
	}

	.ks2-editorial::after {
		height: 70px;
	}

	.ks2-final-cta {
		background:
			radial-gradient(circle at 12% 15%, rgba(255, 255, 255, 0.17), transparent 23%),
			linear-gradient(135deg, #27dc72, #16c969 55%, #10b85c);
	}

	.ks-footer-wave {
		height: 76px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ks2-stage__frame {
		transform: none;
	}
}

/*
 * V2.5 final refinement
 * Brand hierarchy: navy + cyan lead, green acts, pink/yellow accent.
 */
.ks2-hero {
	min-height: 735px;
	padding: 126px 0 82px;
	background:
		radial-gradient(circle at 80% 16%, rgba(255, 189, 66, 0.2), transparent 27%),
		radial-gradient(circle at 10% 82%, rgba(37, 204, 233, 0.1), transparent 27%),
		linear-gradient(135deg, #fff9ed 0%, #fceac7 58%, #fff8e9 100%);
}

.ks2-hero::before {
	opacity: 0.022;
}

.ks2-hero__mesh {
	opacity: 0.65;
}

.ks2-hero__orb--pink {
	opacity: 0.46;
}

.ks2-hero__orb--green {
	opacity: 0.62;
}

.ks2-hero h1 {
	max-width: 690px;
	font-size: clamp(40px, 4.35vw, 64px);
	line-height: 1.16;
	letter-spacing: -0.052em;
}

.ks2-hero h1 span {
	background: linear-gradient(90deg, #078bd3, #13aaca 58%, #18b978);
	background-clip: text;
	-webkit-background-clip: text;
}

.ks2-hero__lead {
	max-width: 620px;
	font-size: clamp(14px, 1.05vw, 17px);
	line-height: 1.9;
}

.ks2-hero__stage {
	min-height: 500px;
}

.ks2-stage__frame {
	inset: 23px 30px 24px 18px;
	box-shadow: 0 30px 72px rgba(79, 59, 24, 0.17);
	transform: rotateY(calc(var(--ks-mx, 0) * 1.4deg)) rotateX(calc(var(--ks-my, 0) * -1.4deg));
}

.ks2-stage__rings span:nth-child(1) {
	inset: 2% 9% 4% 2%;
	opacity: 0.46;
}

.ks2-stage__rings span:nth-child(2),
.ks2-stage__rings span:nth-child(3),
.ks2-float-card--top {
	display: none;
}

.ks2-float-card--bottom {
	right: -1px;
	bottom: 3px;
	min-width: 128px;
}

.ks2-scroll-cue {
	display: none;
}

.ks2-marquee__track {
	padding-block: 11px;
	animation-duration: 38s;
}

.ks2-section {
	padding-block: 78px;
}

.ks2-section-head {
	margin-bottom: 34px;
}

.ks2-section-head h2 {
	font-size: clamp(27px, 3vw, 42px);
	letter-spacing: -0.038em;
}

.ks2-bento__item--programs {
	background:
		radial-gradient(circle at 16% 14%, rgba(255, 255, 255, 0.2), transparent 25%),
		linear-gradient(145deg, #19aec5, #087f9c);
}

.ks2-bento__item--programs .ks2-bento__icon {
	color: #fff;
}

.ks2-bento__item--research {
	background: linear-gradient(145deg, #e7f9fc, #fbffff);
}

.ks2-bento__item--members {
	background: linear-gradient(145deg, #ffedf4, #fffafb);
}

.ks2-bento__item--media {
	background:
		radial-gradient(circle at 12% 60%, rgba(255, 189, 66, 0.24), transparent 28%),
		linear-gradient(120deg, #fff5dc, #fffdf7);
}

.ks2-editorial {
	padding-top: 82px;
	padding-bottom: 112px;
	background:
		radial-gradient(circle at 91% 8%, rgba(255, 255, 255, 0.12), transparent 25%),
		radial-gradient(circle at 5% 88%, rgba(4, 75, 92, 0.22), transparent 24%),
		linear-gradient(145deg, #117d92, #0d7189 58%, #075d76);
}

.ks2-story {
	box-shadow: 0 19px 48px rgba(3, 61, 75, 0.21);
}

.ks2-manifesto {
	background:
		radial-gradient(circle at 18% 48%, rgba(37, 204, 233, 0.07), transparent 28%),
		linear-gradient(180deg, #fffaf1, #f7fbfb);
}

.ks2-manifesto__content h2 {
	font-size: clamp(30px, 3.7vw, 48px);
	letter-spacing: -0.045em;
}

.ks2-final-cta {
	background:
		radial-gradient(circle at 12% 15%, rgba(255, 255, 255, 0.12), transparent 23%),
		linear-gradient(135deg, #0b8247, #097441 56%, #065d36);
}

.ks2-final-cta h2 {
	font-size: clamp(27px, 3.2vw, 43px);
	letter-spacing: -0.04em;
}

.ks-page-hero--green {
	background:
		radial-gradient(circle at 16% 20%, rgba(44, 232, 114, 0.14), transparent 22%),
		linear-gradient(135deg, #e7f9ed, #fbfefc);
}

.ks-page-hero--pink {
	background:
		radial-gradient(circle at 16% 20%, rgba(255, 85, 148, 0.11), transparent 22%),
		linear-gradient(135deg, #fff0f5, #fffafb);
}

.ks-page-hero--cyan {
	background:
		radial-gradient(circle at 16% 20%, rgba(37, 204, 233, 0.15), transparent 22%),
		linear-gradient(135deg, #e6f9fc, #fbfeff);
}

.ks-page-hero--yellow {
	background:
		radial-gradient(circle at 16% 20%, rgba(255, 189, 66, 0.15), transparent 22%),
		linear-gradient(135deg, #fff4dc, #fffdf8);
}

.ks-footer-menu a {
	font-size: 11.25px;
}

@media (max-width: 1180px) {
	.ks2-hero {
		min-height: 700px;
	}

	.ks2-hero__stage {
		min-height: 475px;
	}
}

@media (max-width: 980px) {
	.ks2-hero {
		padding-top: 110px;
	}

	.ks2-hero h1 {
		font-size: clamp(38px, 6.8vw, 56px);
	}

	.ks2-hero__stage {
		min-height: 480px;
	}
}

@media (max-width: 720px) {
	.ks2-hero {
		padding-top: 96px;
		padding-bottom: 72px;
	}

	.ks2-hero h1 {
		font-size: clamp(34px, 10.2vw, 47px);
	}

	.ks2-hero__stage {
		min-height: 410px;
	}

	.ks2-section {
		padding-block: 62px;
	}

	.ks2-editorial {
		padding-top: 66px;
		padding-bottom: 88px;
	}
}
