/* ============================================================
   Hamant Kumar Bahukhandi — Multi-page Portfolio
   Design language modeled after leoparpeix.com
   Palette : #022016 / #f7f7f7 / #eed6c8 / #f6e016 / #083d2a
   Type    : Archivo (display, wght 622) + Hanken Grotesk (body)
   Easing  : cubic-bezier(.16,1,.1,1)  (expo-out)
   ============================================================ */

/* ---------- Root scaling ---------- */
html {
	font-size: clamp(12px, .9722222222vw, 28px);
	scrollbar-width: none;
	-ms-overflow-style: none;
}
@media (min-width: 1920px) { html { font-size: 1vw; } }
html::-webkit-scrollbar, body::-webkit-scrollbar { display: none; width: 0; height: 0; }

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { width: 100%; }
body {
	height: auto;
	overflow-x: hidden;
	text-size-adjust: none;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	user-select: none;
	-webkit-user-select: none;
	background: #022016;
	color: #022016;
	font-family: 'Hanken Grotesk', 'Segoe UI', sans-serif;
	font-weight: 400;
	line-height: 1.2;
}
h1, h2, h3, h4, p, span, button { font-size: inherit; font-weight: inherit; }
ul, ol { list-style: none; }
a { text-decoration: none; color: inherit; }
button { background: none; border: 0; font: inherit; color: inherit; cursor: pointer; }
img, video, canvas { display: block; max-width: 100%; }
html.is-locked, html.menu-open, html.is-lightboxed { overflow: hidden; }

/* ---------- Type helper ---------- */
.title {
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	text-transform: uppercase;
	line-height: .9;
}

/* ---------- Master grid ---------- */
.grid {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	max-width: 2560px;
	margin: 0 auto;
	column-gap: 1.3888888889vw;
	padding-inline: 2.7777777778vw;
	width: 100%;
}

/* ---------- mark / pills / links ---------- */
mark { background: #f6e016; color: #022016; padding: 0 .12em; }

.pill {
	display: inline-block;
	padding: .4285714286rem 1rem;
	border-radius: 3.5714285714rem;
	background: #f6e016;
	color: #022016;
	text-transform: uppercase;
	font-size: .7638888889vw;
	line-height: 1;
	white-space: nowrap;
}
.pill--quiet { background: transparent; box-shadow: inset 0 0 0 1px rgba(2,32,22,.25); color: #022016; }
.pill--cream { background: #eed6c8; }

/* Signature sliding underline */
.text__link {
	position: relative;
	display: inline-block;
	color: #eed6c8;
	--u: #eed6c8;
}
.text__link--dark { color: #022016; --u: #022016; }
.text__link::before, .text__link::after {
	content: '';
	position: absolute;
	left: 0; right: 0; bottom: -.1428571429rem;
	height: 1px;
	background: var(--u);
}
.text__link::before { transform: scaleX(1); transform-origin: left; }
.text__link::after { transform: scaleX(0); transform-origin: right; transition: transform 1s cubic-bezier(.16,1,.1,1) .1s; }
.text__link:hover::before { transform: scaleX(0); transform-origin: right; transition: transform 1s cubic-bezier(.16,1,.1,1); }
.text__link:hover::after { transform: scaleX(1); transform-origin: left; }

/* ============================================================
   PRELOADER
   ============================================================ */
.loaderBlock {
	position: fixed;
	inset: 0;
	height: 100dvh;
	background: #f7f7f7;
	z-index: 201;
	overflow: hidden;
	transition: transform .9s cubic-bezier(.16,1,.1,1);
}
.loaderBlock.is-done { transform: translateY(-101%); pointer-events: none; }
.loader__inner {
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	position: relative;
}
.loader__lines { display: flex; flex-direction: column; }
.loader__line {
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	text-transform: uppercase;
	color: #022016;
	font-size: 8.1944444444vw;
	line-height: .9;
}
.loader__line .line-inner {
	display: inline-block;
	transform: translateY(155%) rotate(5deg);
	transition: transform 1s cubic-bezier(.16,1,.1,1);
}
.loaderBlock.is-active .loader__line:nth-child(1) .line-inner { transition-delay: .1s; transform: none; }
.loaderBlock.is-active .loader__line:nth-child(2) .line-inner { transition-delay: .2s; transform: none; }
.loaderBlock.is-active .loader__line:nth-child(3) .line-inner { transition-delay: .3s; transform: none; }
.loader__meta {
	position: absolute;
	bottom: 2.7777777778vw;
	left: 2.7777777778vw;
	display: flex;
	flex-direction: column;
	gap: .3rem;
}
.loader__label { font-size: .9722222222vw; text-transform: uppercase; line-height: 1; opacity: .5; }
.loader__count {
	position: absolute;
	bottom: 2.7777777778vw;
	right: 2.7777777778vw;
	font-size: .9722222222vw;
	line-height: 1;
}

/* line mask primitive */
.line-mask { display: block; overflow: hidden; }
.line-mask .line-inner { display: inline-block; will-change: transform; }

/* ============================================================
   REVEALS
   ============================================================ */
[data-reveal='lines'] { --d: 0ms; }
[data-reveal='lines'] .line-inner {
	transform: translateY(110%) rotate(3deg);
	transition: transform 1.05s cubic-bezier(.16,1,.1,1) var(--d);
}
[data-reveal='lines'].is-revealed .line-inner { transform: none; }

[data-reveal='fade'] {
	--d: 0ms;
	opacity: 0;
	transform: translateY(2rem);
	transition: opacity .9s cubic-bezier(.16,1,.1,1) var(--d), transform .9s cubic-bezier(.16,1,.1,1) var(--d);
}
[data-reveal='fade'].is-revealed { opacity: 1; transform: none; }

[data-reveal='zoom'] {
	--d: 0ms;
	opacity: 0;
	transform: scale(.94);
	clip-path: inset(6% 4% 6% 4% round 1rem);
	transition: opacity 1s cubic-bezier(.16,1,.1,1) var(--d), transform 1s cubic-bezier(.16,1,.1,1) var(--d), clip-path 1.1s cubic-bezier(.16,1,.1,1) var(--d);
}
[data-reveal='zoom'].is-revealed { opacity: 1; transform: none; clip-path: inset(0 0 0 0 round 1rem); }

/* card variant — no transform in the reveal, so scroll parallax owns transform */
[data-reveal='card'] {
	--d: 0ms;
	opacity: 0;
	clip-path: inset(10% 8% 10% 8% round 1rem);
	transition: opacity 1s cubic-bezier(.16,1,.1,1) var(--d), clip-path 1.1s cubic-bezier(.16,1,.1,1) var(--d);
}
[data-reveal='card'].is-revealed { opacity: 1; clip-path: inset(0 0 0 0 round 1rem); }

.no-anim, .no-anim .line-inner { transition: none !important; }

/* ============================================================
   CUSTOM CURSOR
   ============================================================ */
/* Wrapper = 0x0 anchor following the pointer (JS sets transform each frame).
   Pill = yellow label bubble, bottom-left corner pinned at the pointer,
   scaling in/out from that same corner (transform-origin 0% 100%). */
.cursorIndication {
	position: fixed;
	top: 0; left: 0;
	z-index: 10000;
	pointer-events: none;
	-webkit-user-select: none;
	user-select: none;
	will-change: transform;
	transform: translate(-100%, -100%) scale(1) rotate(0deg);
}
.cursor__text {
	--cursor-rem: clamp(12px, .9722222222vw, 28px);
	display: inline-block;
	padding: calc(.4285714286 * var(--cursor-rem)) var(--cursor-rem);
	border-radius: calc(3.5714285714 * var(--cursor-rem));
	background: #f6e016;
	color: #022016;
	text-transform: uppercase;
	white-space: nowrap;
	font-size: .7638888889vw;
	transform-origin: 0% 100%;
	transform: translate(0, -100%) scale(0);
	backface-visibility: hidden;
	will-change: transform;
}
.cursor__label { display: block; white-space: nowrap; }
@media (min-width: 1920px) {
	.cursor__text { --cursor-rem: 1vw; }
}
@media (max-width: 1440px) {
	.cursor__text { font-size: 11px; }
}
@media (min-width: 2880px) {
	.cursor__text { font-size: 22px; }
}
@media (pointer: coarse), (hover: none) { .cursorIndication { display: none; } }

/* ============================================================
   PAGE TRANSITION OVERLAY
   ============================================================ */
.pageTransitionOverlay {
	position: fixed;
	inset: 0;
	z-index: 150;
	background: #022016;
	display: flex;
	align-items: center;
	justify-content: center;
	transform: translateY(101%);
	transition: transform .7s cubic-bezier(.16,1,.1,1);
	pointer-events: none;
}
.pageTransitionOverlay__label {
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	text-transform: uppercase;
	color: #eed6c8;
	font-size: 1.25vw;
	letter-spacing: 0;
	opacity: .8;
}
.pageTransitionOverlay.is-cover { transform: none; pointer-events: auto; }
.pageTransitionOverlay.is-reveal { transform: translateY(-101%); }
.pageTransitionOverlay.no-transition { transition: none; }
.pageTransitionOverlay.is-hidden { visibility: hidden; }

/* ============================================================
   NAVBAR
   ============================================================ */
.navbarBlock {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 4;
	--navbar-fg: #eed6c8;
	--navbar-line: #f7f7f7;
	color: var(--navbar-fg);
	transition: color .4s ease;
}
.navbarBlock[data-navbar-theme='light'] { --navbar-fg: #022016; --navbar-line: #000000; }
.navbarBlock[data-navbar-theme='dark'],
.navbarBlock[data-navbar-theme='green'] { --navbar-fg: #eed6c8; --navbar-line: #f7f7f7; }
html.menu-open .navbarBlock { --navbar-fg: #eed6c8; --navbar-line: #f7f7f7; }

.navbar__inner {
	position: relative;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-block: 1.1111111111vw;
	max-width: 2560px;
	margin: 0 auto;
	padding-inline: 2.7777777778vw;
	width: 100%;
}
.navbar__left { display: flex; flex-direction: column; gap: .2rem; }
.navbar__name { font-size: .9722222222vw; line-height: 1; text-transform: uppercase; }
.navbar__role { font-size: .9722222222vw; line-height: 1; text-transform: uppercase; opacity: .5; }
.navbar__right { display: flex; align-items: center; gap: 1rem; }
.navbar__time {
	font-size: .9722222222vw;
	line-height: 1;
	text-transform: uppercase;
	opacity: .6;
	font-variant-numeric: tabular-nums;
}

/* Menu button */
.menuButton { display: flex; align-items: center; gap: .7rem; }
.menuButton__labelSwap { position: relative; display: block; height: 1em; overflow: hidden; }
.menuButton__label {
	display: block;
	height: 1em;
	line-height: 1;
	font-size: .9722222222vw;
	text-transform: uppercase;
	transition: transform .5s cubic-bezier(.16,1,.1,1), opacity .4s ease;
}
.menuButton__label--close { position: absolute; top: 0; left: 0; transform: translateY(110%); opacity: 0; }
html.menu-open .menuButton__label--menu { transform: translateY(-110%); opacity: 0; }
html.menu-open .menuButton__label--close { transform: none; opacity: 1; }
.menuButton__bars {
	width: 40px; height: 40px;
	border-radius: 8px;
	background: #ececec;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 5px;
	flex: none;
	transition: background .4s ease;
}
html.menu-open .menuButton__bars { background: #eed6c8; }
.menuButton__bar { width: 16px; height: 2px; background: #022016; transition: transform .5s cubic-bezier(.16,1,.1,1); }
html.menu-open .menuButton__bar:nth-child(1) { transform: translateY(3.5px) rotate(45deg); }
html.menu-open .menuButton__bar:nth-child(2) { transform: translateY(-3.5px) rotate(-45deg); }

/* Menu overlay */
.navbar__overlay {
	position: fixed;
	inset: 0;
	background: #000;
	z-index: 3;
	opacity: 0;
	visibility: hidden;
	transition: opacity .75s cubic-bezier(.16,1,.1,1), visibility 0s linear .75s;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 0 2.7777777778vw;
}
html.menu-open .navbar__overlay { opacity: 1; visibility: visible; transition: opacity .75s cubic-bezier(.16,1,.1,1); }
.menu__links { display: flex; flex-direction: column; gap: .5vw; }
.links__link {
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	text-transform: uppercase;
	color: #eed6c8;
	font-size: 3.8888888889vw;
	line-height: .85;
}
.links__link a { display: inline-block; transition: color .35s ease; }
.links__link a:hover { color: #f6e016; }
.links__link.is-current a { color: #f6e016; }
.links__link.is-current a::after { content: '—'; margin-left: .5rem; }
.links__link .line-inner { transform: translateY(110%); transition: transform .9s cubic-bezier(.16,1,.1,1); }
html.menu-open .links__link:nth-child(1) .line-inner { transition-delay: .25s; transform: none; }
html.menu-open .links__link:nth-child(2) .line-inner { transition-delay: .32s; transform: none; }
html.menu-open .links__link:nth-child(3) .line-inner { transition-delay: .39s; transform: none; }
html.menu-open .links__link:nth-child(4) .line-inner { transition-delay: .46s; transform: none; }
html.menu-open .links__link:nth-child(5) .line-inner { transition-delay: .53s; transform: none; }
.menu__footer {
	position: absolute;
	bottom: 2.7777777778vw;
	left: 2.7777777778vw;
	right: 2.7777777778vw;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 1rem;
}
.menu__footer .text__link { font-size: .9722222222vw; text-transform: uppercase; }
.menu__location { font-size: .9722222222vw; text-transform: uppercase; opacity: .5; line-height: 1; }

/* ============================================================
   HERO (HOME)
   ============================================================ */
.heroBlock { height: 200dvh; position: relative; isolation: isolate; }
.hero__sticky {
	position: sticky;
	top: 0;
	height: 100dvh;
	overflow: hidden;
	background: #022016;
}
#heroCanvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; }

/* film grain */
.hero__sticky::after,
.valuesBlock::after,
.footerBlock::after,
.quoteBlock::after {
	content: '';
	position: absolute;
	inset: -100%;
	z-index: 1;
	pointer-events: none;
	opacity: .07;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	animation: grainShift 8s steps(10) infinite;
}
@keyframes grainShift {
	0%,100% { transform: translate(0,0); }
	10% { transform: translate(-5%,-8%); }
	20% { transform: translate(-12%,4%); }
	30% { transform: translate(6%,-14%); }
	40% { transform: translate(-4%,12%); }
	50% { transform: translate(-10%,6%); }
	60% { transform: translate(12%,0); }
	70% { transform: translate(0,10%); }
	80% { transform: translate(-12%,0); }
	90% { transform: translate(8%,4%); }
}

.hero__content {
	position: relative;
	z-index: 2;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding-block: 6.5vw 2.7777777778vw;
	color: #eed6c8;
}
.hero__top { display: flex; justify-content: space-between; grid-column: 1 / -1; }
.hero__label { font-size: .9722222222vw; line-height: 1; text-transform: uppercase; opacity: .6; }
.hero__title {
	display: flex;
	flex-direction: column;
	grid-column: 1 / -1;
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	text-transform: uppercase;
	font-size: 8.1944444444vw;
	line-height: .8;
	color: #eed6c8;
	margin-top: auto;
	max-width: 70vw;
}
.hero__line { display: block; }
.hero__line:nth-child(2) { margin-left: 4vw; }
.hero__line:nth-child(3) { }
.hero__bottom { display: flex; justify-content: space-between; align-items: flex-end; grid-column: 1 / -1; gap: 2rem; }
.hero__sub { font-size: 1.25vw; line-height: 1.2; max-width: 40vw; }
.hero__scroll {
	font-size: .9722222222vw;
	line-height: 1;
	text-transform: uppercase;
	opacity: .6;
	display: flex;
	align-items: center;
	gap: .5rem;
	flex: none;
}
.hero__scrollArrow { display: inline-block; animation: scrollBounce 2.4s cubic-bezier(.16,1,.1,1) infinite; }
@keyframes scrollBounce {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(.4em); }
}

/* portrait card in hero (like the original's webgl card) */
.hero__card {
	position: absolute;
	z-index: 2;
	top: 50%;
	right: 2.7777777778vw;
	width: 22vw;
	transform: translateY(-50%) rotate(3deg) scale(var(--cs, 1));
	border-radius: 1rem;
	overflow: visible;
	box-shadow: 0 3rem 6rem rgba(0,0,0,.35);
	will-change: transform;
}
.hero__card img { width: 100%; height: auto; display: block; transition: transform 1.4s cubic-bezier(.16,1,.1,1); border-radius: 1rem; }
.hero__card:hover img { transform: scale(1.05); }

/* dp badges on the hero portrait */
.hero__cardBadge {
	position: absolute;
	z-index: 3;
	top: -1.4rem;
	left: -1.7rem;
	background: #f6e016;
	color: #022016;
	padding: .55rem .95rem;
	border-radius: .55rem;
	font-size: .7638888889vw;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	white-space: nowrap;
	transform: rotate(-4deg);
	box-shadow: 0 1.2rem 2.6rem rgba(0,0,0,.32);
	pointer-events: none;
}
.badge__star { margin-right: .4rem; }
.hero__cardBadge--alt {
	top: 2.9rem;
	left: -2.3rem;
	background: #022016;
	color: #eed6c8;
	border: 1px solid #eed6c855;
	transform: rotate(-2deg);
}
.hero__cardTag {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	background: #022016cc;
	color: #eed6c8;
	padding: .6rem 1rem;
	font-size: .7638888889vw;
	line-height: 1;
	text-transform: uppercase;
	border-radius: 0 0 1rem 1rem;
	backdrop-filter: blur(6px);
}

/* ============================================================
   PAGE HERO (SUBPAGES)
   ============================================================ */
.pageHero {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at 18% 28%, rgba(8,61,42,.9) 0%, rgba(8,61,42,0) 42%),
		radial-gradient(circle at 82% 72%, rgba(13,74,51,.7) 0%, rgba(13,74,51,0) 46%),
		radial-gradient(circle at 60% 15%, rgba(238,214,200,.05) 0%, rgba(238,214,200,0) 34%),
		#022016;
	color: #eed6c8;
	padding-block: 11vw 6.9444444444vw;
}
.pageHero::after {
	content: '';
	position: absolute;
	inset: -100%;
	pointer-events: none;
	opacity: .07;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	animation: grainShift 8s steps(10) infinite;
}
.pageHero .grid { position: relative; z-index: 1; row-gap: 2.2rem; }
.pageHero__crumb { grid-column: 1 / 13; font-size: .9722222222vw; line-height: 1; text-transform: uppercase; opacity: .6; }
.pageHero__title {
	grid-column: 1 / 13;
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	text-transform: uppercase;
	font-size: 8.1944444444vw;
	line-height: .85;
	color: #eed6c8;
	display: flex;
	flex-direction: column;
}
.pageHero__title .title__line { display: block; }
.pageHero__title .title__line--accent { color: #f6e016; text-align: right; }
.pageHero__meta {
	grid-column: 1 / 13;
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	column-gap: 1.3888888889vw;
	align-items: end;
}
.pageHero__desc { font-size: 1.25vw; line-height: 1.2; opacity: .8; max-width: 40rem; }
.pageHero__facts { display: flex; flex-direction: column; gap: .55rem; }
.pageHero__facts li {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	font-size: .9722222222vw;
	line-height: 1;
	text-transform: uppercase;
	padding-bottom: .55rem;
	border-bottom: 1px solid rgba(238,214,200,.18);
}
.pageHero__facts li span:last-child { opacity: .55; }

/* ============================================================
   ABOUT / CONTENT
   ============================================================ */
.contentBlock { background: #f7f7f7; color: #022016; padding-block: 8.3333333333vw 6.9444444444vw; }
.contentBlock .grid { row-gap: 2rem; }
.contentBlock__left { grid-column: 1 / 4; }
.contentBlock__leftMeta { display: flex; flex-direction: column; gap: .5rem; margin-top: 1.2rem; }
.left__metaItem { font-size: .9722222222vw; line-height: 1; text-transform: uppercase; opacity: .45; }
.left__title {
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	text-transform: uppercase;
	font-size: 3.6111111111vw;
	line-height: .9;
}
.contentBlock__right { grid-column: 4 / 12; display: flex; flex-direction: column; gap: 1.8rem; }
.contentBlock__paragraph { font-size: 2.3611111111vw; line-height: 1.1; max-width: 46rem; }
.contentBlock__paragraph--sm { font-size: 1.25vw; line-height: 1.35; opacity: .75; max-width: 38rem; }
.contentBlock__tags { display: flex; flex-wrap: wrap; gap: .6rem; }
.contentBlock__cta { display: flex; gap: 1.2rem; flex-wrap: wrap; align-items: center; }

/* ============================================================
   ARCHIVE ROWS (lists)
   ============================================================ */
.archivesBlock { background: #f7f7f7; color: #022016; padding-block: 6.9444444444vw; }
.archivesBlock__head {
	grid-column: 1 / 13;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 3.4722222222vw;
	gap: 2rem;
}
.archivesBlock__title {
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	text-transform: uppercase;
	font-size: 3.6111111111vw;
	line-height: .9;
}
.archivesBlock__hint { font-size: .9722222222vw; line-height: 1; text-transform: uppercase; opacity: .4; flex: none; }
.archivesBlock__list { grid-column: 1 / 13; }
.items__item { position: relative; border-bottom: 1px solid rgba(2,32,22,.18); }
.items__item:first-child { border-top: 1px solid rgba(2,32,22,.18); }
.items__item::before {
	content: '';
	position: absolute;
	inset: 0;
	background: #00000006;
	transform: translateY(102%);
	transition: transform 1s cubic-bezier(.16,1,.1,1);
}
.items__item:hover::before { transform: none; }
.items__row {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 4.5rem 1fr auto;
	column-gap: 2rem;
	align-items: baseline;
	min-height: 3.2142857143rem;
	padding-block: .4rem;
	transition: color .35s ease;
}
.items__number { font-size: .9722222222vw; line-height: 1; opacity: .4; }
.items__name { font-size: 2.3611111111vw; line-height: 1.1; transition: color .35s ease; }
.items__type { font-size: .9722222222vw; line-height: 1; text-transform: uppercase; opacity: .3; text-align: right; }
.items__text { position: relative; z-index: 1; display: grid; grid-template-rows: 0fr; transition: grid-template-rows 1.4s cubic-bezier(.16,1,.1,1); }
.items__item:hover .items__text { grid-template-rows: 1fr; }
.items__textInner { overflow: hidden; }
.items__textInner p {
	font-size: 1.25vw;
	line-height: 1.2;
	max-width: 38rem;
	padding: 0 0 1.2rem 6.5rem;
	opacity: .7;
}

/* ============================================================
   STATS
   ============================================================ */
.statsBlock { background: #f7f7f7; color: #022016; padding-block: 2.7777777778vw 6.9444444444vw; }
.statsBlock__row { grid-column: 1 / 13; display: grid; grid-template-columns: repeat(5, 1fr); column-gap: 1.3888888889vw; border-top: 1px solid rgba(2,32,22,.18); padding-top: 2rem; }
.stat { display: flex; flex-direction: column; gap: .6rem; }
.stat__value {
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	text-transform: uppercase;
	font-size: 3.6111111111vw;
	line-height: .9;
	color: #022016;
}
.stat__label { font-size: .9722222222vw; line-height: 1.2; text-transform: uppercase; opacity: .5; }

/* ============================================================
   PHOTO STRIP (featured)
   ============================================================ */
.photoStrip { background: #f7f7f7; color: #022016; padding-block: 6.9444444444vw 8.3333333333vw; }
.photoStrip__head { grid-column: 1 / 13; display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 2.4rem; gap: 2rem; }
.photoStrip__title {
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	text-transform: uppercase;
	font-size: 3.6111111111vw;
	line-height: .9;
}
.photoStrip__row { grid-column: 1 / 13; display: grid; grid-template-columns: repeat(4, 1fr); column-gap: 1.3888888889vw; }
.photoCard { position: relative; display: block; border-radius: 1rem; overflow: hidden; }
.photoCard img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	transition: transform 1.4s cubic-bezier(.16,1,.1,1), filter .4s ease;
}
.photoCard:hover img { transform: scale(1.06); }
.photoCard__tag {
	position: absolute;
	left: .8rem; bottom: .8rem;
	background: #022016CC;
	color: #eed6c8;
	border-radius: 999px;
	padding: .4rem .8rem;
	font-size: .7638888889vw;
	line-height: 1;
	text-transform: uppercase;
	backdrop-filter: blur(6px);
}

/* ============================================================
   CARD SECTION (journey card)
   ============================================================ */
.cardSection { background: #eed6c8; color: #022016; padding-block: 6.9444444444vw 8.3333333333vw; position: relative; }
.cardSection__title {
	grid-column: 1 / 13;
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	text-transform: uppercase;
	font-size: 3.6111111111vw;
	line-height: .9;
	margin-bottom: 3.4722222222vw;
}
.cardBlock {
	grid-column: 1 / 9;
	background: #f7f7f7;
	border-radius: 1rem;
	padding: 2.5rem 2.25rem;
	max-width: 44rem;
}
.cardBlock__content { display: flex; flex-direction: column; gap: 1rem; padding-bottom: 2rem; }
.content__title { font-size: 2.6388888889vw; line-height: 1.05; max-width: 26rem; }
.content__text { font-size: 1.25vw; line-height: 1.2; opacity: .7; max-width: 30rem; }
.cardBlock__jobs { display: flex; flex-direction: column; }
.jobs__job { padding-block: 1.1rem; border-top: 1px solid rgba(2,32,22,.14); }
.job__line { display: grid; grid-template-columns: 1fr 1.4fr auto; column-gap: 1rem; align-items: baseline; }
.job__role { font-size: .9722222222vw; line-height: 1; text-transform: uppercase; }
.job__place { font-size: .9722222222vw; line-height: 1; text-transform: uppercase; opacity: .55; }
.job__current {
	font-size: .9722222222vw;
	line-height: 1;
	text-transform: uppercase;
	opacity: .55;
	text-align: right;
	display: flex;
	align-items: center;
	gap: .5rem;
	justify-content: flex-end;
}
.job__current.current { opacity: 1; color: #083d2a; }
.current__circle {
	width: 8px; height: 8px;
	border-radius: 100%;
	background: #083d2a;
	display: inline-block;
	animation: pulseDot 2s ease infinite;
}
@keyframes pulseDot {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: .5; transform: scale(.8); }
}
.job__desc { font-size: .9722222222vw; line-height: 1.2; opacity: .5; padding-top: .5rem; max-width: 30rem; }

/* ============================================================
   JOURNEY ASIDE (recognition + path)
   ============================================================ */
.cardAside { grid-column: 9 / 13; display: flex; flex-direction: column; gap: 1.3888888889vw; }
.medalCard {
	flex: 1 1 auto;
	background: #022016;
	color: #eed6c8;
	border-radius: 1rem;
	padding: 2.2rem 2rem 2rem;
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
}
.medalCard__label { font-size: .9722222222vw; line-height: 1; text-transform: uppercase; opacity: .55; }
.medalCard__title {
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	text-transform: uppercase;
	font-size: 2.6388888889vw;
	line-height: .9;
	color: #eed6c8;
}
.medalCard__title .medalCard__accent { display: block; color: #f6e016; }
.medalCard__divider { height: 1px; background: rgba(238,214,200,.25); }
.medalCard__text { font-size: .9722222222vw; line-height: 1.4; opacity: .75; max-width: 22rem; }
.medalCard__badge { margin-top: auto; padding-top: 1.4rem; display: flex; align-items: center; gap: .9rem; }
.medalCard__star { width: 2.8rem; height: 2.8rem; flex: none; }
.medalCard__badgeText { font-size: .7638888889vw; line-height: 1.3; text-transform: uppercase; opacity: .8; }
.medalCard__badgeText span { display: block; opacity: .5; }
.pathCard {
	background: #f7f7f7;
	border-radius: 1rem;
	padding: 1.4rem 1.6rem;
	display: flex;
	flex-direction: column;
	gap: .7rem;
}
.pathCard__label { font-size: .9722222222vw; line-height: 1; text-transform: uppercase; opacity: .45; }
.pathCard__flow {
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	text-transform: uppercase;
	font-size: 1.1111111111vw;
	line-height: 1.3;
	color: #022016;
}
.pathCard__flow .pathCard__arrow { color: #083d2a; opacity: .55; padding: 0 .25em; }
.journeyPhotoCard {
	position: relative;
	display: block;
	flex: 1 1 auto;
	min-height: 14rem;
	border-radius: 1rem;
	overflow: hidden;
}
.journeyPhotoCard img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 1.4s cubic-bezier(.16,1,.1,1);
}
.journeyPhotoCard:hover img { transform: scale(1.06); }

/* ============================================================
   QUOTE BLOCK
   ============================================================ */
.quoteBlock {
	background: #022016;
	color: #eed6c8;
	padding-block: 9.7222222222vw;
	position: relative;
	overflow: hidden;
}
.quoteBlock .grid { row-gap: 2rem; position: relative; z-index: 1; }
.quoteBlock__mark {
	grid-column: 1 / 13;
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	font-size: 5vw;
	line-height: .5;
	color: #f6e016;
}
.quoteBlock__text {
	grid-column: 2 / 12;
	font-size: 2.3611111111vw;
	line-height: 1.15;
	max-width: 52rem;
}
.quoteBlock__author { grid-column: 2 / 12; font-size: .9722222222vw; line-height: 1.4; text-transform: uppercase; opacity: .55; }
.quoteBlock__author span { color: #f6e016; }

/* ============================================================
   PROGRAMS (Bharosa)
   ============================================================ */
.programsBlock { background: #f7f7f7; color: #022016; padding-block: 6.9444444444vw; }
.programsBlock__cards { grid-column: 1 / 13; display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 1.3888888889vw; row-gap: 1.3888888889vw; }
.programCard {
	background: #eed6c8;
	border-radius: 1rem;
	padding: 1.8rem 1.6rem 1.6rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	min-height: 16rem;
	position: relative;
	overflow: hidden;
	transition: background .4s ease;
}
.programCard:hover { background: #f6e016; }
.programCard__num {
	font-size: .9722222222vw;
	line-height: 1;
	text-transform: uppercase;
	opacity: .45;
}
.programCard__name {
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	text-transform: uppercase;
	font-size: 2.6388888889vw;
	line-height: .9;
}
.programCard__hindi { font-size: .9722222222vw; line-height: 1.4; opacity: .55; }
.programCard__desc { font-size: .9722222222vw; line-height: 1.35; opacity: .75; margin-top: auto; max-width: 24rem; }

/* ============================================================
   OPERATION / VILLAGES
   ============================================================ */
.operationBlock { background: #022016; color: #eed6c8; padding-block: 9.7222222222vw 8.3333333333vw; position: relative; overflow: hidden; }
.operationBlock .grid { row-gap: 2.4rem; }
.operationBlock__label { grid-column: 1 / 13; font-size: .9722222222vw; line-height: 1; text-transform: uppercase; opacity: .5; }
.operationBlock__title {
	grid-column: 1 / 8;
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	text-transform: uppercase;
	font-size: 5.5555555556vw;
	line-height: .9;
	color: #eed6c8;
	display: flex;
	flex-direction: column;
}
.operationBlock__title .title__line { display: block; }
.operationBlock__title .title__line--accent { color: #f6e016; }
.operationBlock__body { grid-column: 8 / 13; display: flex; flex-direction: column; gap: 1.2rem; align-self: end; }
.operationBlock__text { font-size: 1.25vw; line-height: 1.35; opacity: .8; }
.villagesList { grid-column: 1 / 13; display: flex; flex-wrap: wrap; gap: .6rem; }
.villagesList .pill { background: transparent; color: #eed6c8; box-shadow: inset 0 0 0 1px rgba(238,214,200,.35); }
.villagesList .pill:hover { background: #eed6c8; color: #022016; transition: background .35s ease, color .35s ease; }
.operationBlock__photo { grid-column: 1 / 7; }
.operationBlock__photoCard { border-radius: 1rem; overflow: hidden; }
.operationBlock__photoCard img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 1.4s cubic-bezier(.16,1,.1,1); }
.operationBlock__photoCard:hover img { transform: scale(1.05); }
.operationBlock__photoMeta { grid-column: 7 / 13; display: flex; flex-direction: column; gap: .8rem; align-self: center; }
.operationBlock__photoMeta p { font-size: .9722222222vw; line-height: 1.4; opacity: .6; text-transform: uppercase; }

/* ============================================================
   SPORTS / KREEDA (cream photo band)
   ============================================================ */
.sportsBlock { background: #eed6c8; color: #022016; padding-block: 6.9444444444vw 8.3333333333vw; }
.sportsBlock .grid { row-gap: 2.4rem; }
.sportsBlock__text { grid-column: 1 / 13; display: flex; flex-direction: column; gap: 1.2rem; max-width: 52rem; }
.sportsBlock__text h3 {
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	text-transform: uppercase;
	font-size: 3.6111111111vw;
	line-height: .9;
}
.sportsBlock__text p { font-size: 1.25vw; line-height: 1.35; opacity: .75; max-width: 44rem; }
.sportsBlock__row { grid-column: 1 / 13; display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 1.3888888889vw; }

/* ============================================================
   TEAM
   ============================================================ */
.teamBlock { background: #f7f7f7; color: #022016; padding-block: 6.9444444444vw; }
.teamBlock__row { grid-column: 1 / 13; display: grid; grid-template-columns: repeat(4, 1fr); column-gap: 1.3888888889vw; }
.teamCard { background: #f7f7f7; border: 1px solid rgba(2,32,22,.14); border-radius: 1rem; overflow: hidden; display: flex; flex-direction: column; }
.teamCard__photo { aspect-ratio: 1 / 1; overflow: hidden; }
.teamCard__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s cubic-bezier(.16,1,.1,1); }
.teamCard:hover .teamCard__photo img { transform: scale(1.05); }
.teamCard__monogram {
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	font-size: 3.6111111111vw;
	color: #eed6c8;
	background: radial-gradient(circle at 30% 30%, #083d2a, #022016);
}
.teamCard__body { padding: 1.2rem 1.2rem 1.4rem; display: flex; flex-direction: column; gap: .45rem; }
.teamCard__name { font-size: 1.25vw; line-height: 1; text-transform: uppercase; }
.teamCard__role { font-size: .9722222222vw; line-height: 1; text-transform: uppercase; opacity: .5; }
.teamCard__desc { font-size: .9722222222vw; line-height: 1.35; opacity: .65; }

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.testiBlock { background: #f7f7f7; color: #022016; padding-block: 2.7777777778vw 8.3333333333vw; }
.testiBlock__row { grid-column: 1 / 13; display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 1.3888888889vw; }
.testiCard { display: flex; flex-direction: column; gap: 1rem; padding: 1.6rem; background: #eed6c8; border-radius: 1rem; min-height: 12rem; }
.testiCard__quote { font-size: 1.25vw; line-height: 1.3; }
.testiCard__author { margin-top: auto; font-size: .9722222222vw; line-height: 1.4; text-transform: uppercase; }
.testiCard__author span { display: block; opacity: .5; }

/* ============================================================
   GALLERY
   ============================================================ */
.galleryBlock { background: #f7f7f7; color: #022016; padding-block: 0 8.3333333333vw; }
.filterBar { grid-column: 1 / 13; display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 2.4rem; }
.filterBtn {
	padding: .5rem 1.1rem;
	border-radius: 3.5714285714rem;
	background: transparent;
	box-shadow: inset 0 0 0 1px rgba(2,32,22,.25);
	color: #022016;
	font-size: .7638888889vw;
	line-height: 1;
	text-transform: uppercase;
	transition: background .35s ease, color .35s ease;
}
.filterBtn:hover { background: #eed6c8; }
.filterBtn.is-active { background: #f6e016; box-shadow: inset 0 0 0 1px transparent; }
.galleryGrid { grid-column: 1 / 13; display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 1.3888888889vw; row-gap: 1.3888888889vw; }
.gallery__item {
	position: relative;
	border-radius: 1rem;
	overflow: hidden;
	cursor: pointer;
	transition: opacity .5s ease, transform .5s cubic-bezier(.16,1,.1,1);
}
.gallery__item img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	transition: transform 1.4s cubic-bezier(.16,1,.1,1);
}
.gallery__item:hover img { transform: scale(1.06); }
.gallery__item.is-hidden { display: none; }
.gallery__item__tag {
	position: absolute;
	left: .8rem; bottom: .8rem;
	background: #022016CC;
	color: #eed6c8;
	border-radius: 999px;
	padding: .4rem .8rem;
	font-size: .7638888889vw;
	line-height: 1;
	text-transform: uppercase;
	backdrop-filter: blur(6px);
}

/* Lightbox */
.lightbox {
	position: fixed;
	inset: 0;
	z-index: 300;
	background: rgba(2,32,22,.94);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1.2rem;
	padding: 4rem 2.7777777778vw;
	opacity: 0;
	visibility: hidden;
	transition: opacity .45s cubic-bezier(.16,1,.1,1), visibility 0s linear .45s;
}
.lightbox.is-open { opacity: 1; visibility: visible; transition: opacity .45s cubic-bezier(.16,1,.1,1); }
.lightbox img { max-width: min(1100px, 92vw); max-height: 78dvh; border-radius: 1rem; object-fit: contain; }
.lightbox__caption { color: #eed6c8; font-size: .9722222222vw; line-height: 1; text-transform: uppercase; opacity: .8; }
.lightbox__close {
	position: absolute;
	top: 2rem; right: 2.7777777778vw;
	background: #eed6c8;
	color: #022016;
	border-radius: 999px;
	padding: .6rem 1.2rem;
	font-size: .9722222222vw;
	line-height: 1;
	text-transform: uppercase;
}

/* ============================================================
   VALUES (big type)
   ============================================================ */
.valuesBlock {
	background: #022016;
	color: #eed6c8;
	padding-block: 9.7222222222vw;
	position: relative;
	overflow: hidden;
}
.valuesBlock__label { grid-column: 1 / 13; font-size: .9722222222vw; line-height: 1; text-transform: uppercase; opacity: .5; margin-bottom: 2.7777777778vw; }
.valuesBlock__title {
	grid-column: 1 / 13;
	display: flex;
	flex-direction: column;
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	text-transform: uppercase;
	font-size: 11.25vw;
	line-height: .9;
	color: #eed6c8;
}
.values__line { display: block; }
.values__line:nth-child(2) { margin-left: 10vw; color: #f6e016; }
.values__line:nth-child(3) { text-align: right; }
.valuesBlock__sub { grid-column: 1 / 13; font-size: 1.25vw; line-height: 1.2; opacity: .6; margin-top: 3.4722222222vw; }

/* ============================================================
   FOOTER
   ============================================================ */
.footerBlock {
	background: #083d2a;
	color: #eed6c8;
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	position: relative;
	overflow: hidden;
	padding-block: 7vw 2.7777777778vw;
}
.footerBlock::after { opacity: .05; }
.footerBlock .grid { flex: 1 1 auto; row-gap: 3rem; }
.footerBlock__top { grid-column: 1 / 13; display: flex; flex-direction: column; gap: 2rem; margin-top: auto; }
.footer__label { font-size: .9722222222vw; line-height: 1; text-transform: uppercase; opacity: .6; }
.footer__title {
	font-family: 'Archivo', 'Arial Black', sans-serif;
	font-variation-settings: 'wdth' 110, 'wght' 622;
	text-transform: uppercase;
	font-size: 8.1944444444vw;
	line-height: .85;
	color: #eed6c8;
}
.footer__title .footer__line { display: block; }
.footer__title .footer__line:last-child { color: #f6e016; text-align: right; }
.footer__sub { font-size: 1.25vw; line-height: 1.2; opacity: .8; max-width: 34rem; }
.footer__cta { display: flex; flex-wrap: wrap; gap: 1rem; }
.mainButton {
	display: inline-flex;
	align-items: center;
	gap: .8rem;
	background: #f6e016;
	color: #022016;
	border-radius: 3.5714285714rem;
	padding: 1.0714285714rem 2rem;
	font-size: .9722222222vw;
	line-height: 1;
	text-transform: uppercase;
	transition: background .4s ease, color .4s ease;
}
.mainButton::after { content: '→'; transition: transform .5s cubic-bezier(.16,1,.1,1); }
.mainButton:hover { background: #eed6c8; }
.mainButton:hover::after { transform: translateX(.4em); }
.mainButton--quiet { background: transparent; color: #eed6c8; box-shadow: inset 0 0 0 1px rgba(238,214,200,.4); }
.mainButton--quiet:hover { background: #eed6c8; color: #022016; }

.footerBlock__bottom {
	grid-column: 1 / 13;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	column-gap: 1.3888888889vw;
	padding-top: 2rem;
}
.networks__label { font-size: .9722222222vw; line-height: 1; text-transform: uppercase; opacity: .5; margin-bottom: .8rem; }
.bottom__networks { display: flex; flex-direction: column; gap: .5rem; align-items: flex-start; }
.bottom__networks .text__link { font-size: .9722222222vw; line-height: 1; text-transform: uppercase; }
.bottom__areaText { font-size: .9722222222vw; line-height: 1.4; opacity: .8; }

/* ============================================================
   BREAKPOINTS
   ============================================================ */
@media (min-width: 2880px) {
	.loader__line, .hero__title, .footer__title, .pageHero__title { font-size: 236px; }
	.valuesBlock__title { font-size: 324px; }
	.links__link { font-size: 112px; }
	.archivesBlock__title, .left__title, .cardSection__title, .photoStrip__title, .sportsBlock__text h3, .stat__value, .teamCard__monogram { font-size: 104px; }
	.items__name, .contentBlock__paragraph, .quoteBlock__text { font-size: 68px; }
	.content__title, .programCard__name, .operationBlock__title { font-size: 76px; }
	.operationBlock__title { font-size: 160px; }
	.hero__sub, .content__text, .items__textInner p, .footer__sub, .valuesBlock__sub,
	.pageHero__desc, .operationBlock__text, .sportsBlock__text p, .quoteBlock__text { font-size: 36px; }
	.navbar__name, .navbar__role, .navbar__time, .hero__label, .items__number, .items__type,
	.job__role, .job__place, .job__current, .job__desc, .footer__label, .networks__label,
	.bottom__areaText, .menu__footer .text__link, .loader__label, .loader__count, .mainButton,
	.stat__label, .left__metaItem, .archivesBlock__hint, .pageHero__crumb, .programCard__num,
	.programCard__hindi, .programCard__desc, .teamCard__role, .teamCard__desc, .lightbox__caption,
	.lightbox__close, .pageTransitionOverlay__label { font-size: 28px; }
	.pill, .photoCard__tag, .gallery__item__tag, .hero__cardTag, .hero__cardBadge, .filterBtn { font-size: 22px; }
	.teamCard__name, .testiCard__quote { font-size: 36px; }
	.medalCard__title { font-size: 76px; }
	.medalCard__label, .medalCard__text, .pathCard__label { font-size: 28px; }
	.pathCard__flow { font-size: 32px; }
	.medalCard__badgeText { font-size: 22px; }
}

@media (max-width: 1025px) {
	.grid { grid-template-columns: repeat(8, 1fr); column-gap: 40px; }
	.contentBlock__left, .contentBlock__right, .cardBlock, .cardAside, .archivesBlock__list,
	.archivesBlock__head, .photoStrip__row, .statsBlock__row, .quoteBlock__text,
	.quoteBlock__author, .quoteBlock__mark, .operationBlock__title, .operationBlock__body,
	.villagesList, .operationBlock__photo, .operationBlock__photoMeta, .sportsBlock__row,
	.programsBlock__cards, .teamBlock__row, .testiBlock__row, .galleryGrid, .filterBar { grid-column: 1 / 9; }
	.contentBlock__left { margin-bottom: 1rem; }
	.cardBlock { max-width: none; }
	.photoStrip__row, .sportsBlock__row { grid-template-columns: repeat(2, 1fr); row-gap: 1.4rem; }
	.programsBlock__cards { grid-template-columns: repeat(2, 1fr); }
	.teamBlock__row { grid-template-columns: repeat(2, 1fr); row-gap: 1.4rem; }
	.testiBlock__row { grid-template-columns: 1fr; row-gap: 1.2rem; }
	.galleryGrid { grid-template-columns: repeat(2, 1fr); }
	.statsBlock__row { grid-template-columns: repeat(3, 1fr); row-gap: 2rem; }
	.footerBlock__bottom { grid-template-columns: repeat(2, 1fr); row-gap: 2rem; }
	.hero__sub { max-width: 60vw; }
	.hero__card { width: 26vw; }
	.hero__title { max-width: 62vw; }
	.pageHero__meta { grid-template-columns: 1fr; row-gap: 1.6rem; }
	.menu__footer { flex-direction: column; align-items: flex-start; gap: .8rem; }
}

@media (max-width: 700px) {
	.grid { column-gap: 8px; padding-inline: 20px; }
	.navbar__inner { padding-inline: 20px; padding-block: 16px; }
	.navbar__role, .navbar__time { display: none; }
	.heroBlock { height: 170dvh; }
	.hero__title { font-size: 9.5vw; max-width: none; }
	.hero__line:nth-child(2) { margin-left: 6vw; }
	.hero__card { position: relative; top: auto; right: auto; transform: none; width: 68%; margin: 1.6rem auto 0; rotate: 0deg; }
	.hero__cardBadge { font-size: 11px; top: -.9rem; left: -.5rem; padding: .45rem .7rem; }
	.hero__cardBadge--alt { font-size: 11px; top: 2rem; left: -.7rem; }
	.hero__sub { font-size: 16px; max-width: none; }
	.hero__bottom { flex-direction: column; align-items: flex-start; gap: 1rem; }
	.loader__line { font-size: 9.5vw; }
	.loader__label, .loader__count { font-size: 12px; }
	.navbar__name, .navbar__time, .hero__label, .hero__scroll, .menuButton__label, .items__number, .items__type, .job__role,
	.job__place, .job__current, .job__desc, .footer__label, .networks__label, .bottom__areaText,
	.menu__footer .text__link, .menu__location, .left__metaItem, .archivesBlock__hint, .pageHero__crumb,
	.programCard__num, .programCard__hindi, .programCard__desc, .teamCard__role, .teamCard__desc,
	.lightbox__caption, .lightbox__close, .pageTransitionOverlay__label { font-size: 12px; }
	.left__title, .archivesBlock__title, .cardSection__title, .photoStrip__title, .sportsBlock__text h3 { font-size: 34px; }
	.pageHero__title { font-size: 13.5vw; }
	.pageHero { padding-block: 90px 60px; }
	.contentBlock__paragraph { font-size: 24px; }
	.contentBlock__paragraph--sm { font-size: 15px; }
	.quoteBlock__text { font-size: 24px; }
	.quoteBlock__mark { font-size: 40px; }
	.items__row { grid-template-columns: 2.5rem 1fr; }
	.items__type { display: none; }
	.items__name { font-size: 24px; }
	.items__textInner p { font-size: 14px; padding-left: 3.5rem; }
	.statsBlock__row { grid-template-columns: repeat(2, 1fr); }
	.stat__value { font-size: 40px; }
	.photoStrip__row, .sportsBlock__row { grid-template-columns: 1fr; }
	.cardBlock { padding: 1.5rem 1.25rem; }
	.content__title, .programCard__name { font-size: 26px; }
	.content__text, .valuesBlock__sub, .operationBlock__text, .sportsBlock__text p { font-size: 15px; }
	.job__line { grid-template-columns: 1fr 1.4fr; }
	.job__current { grid-column: 1 / -1; justify-content: flex-start; text-align: left; }
	.programsBlock__cards { grid-template-columns: 1fr; }
	.programCard { min-height: auto; }
	.operationBlock__title { font-size: 44px; }
	.teamBlock__row { grid-template-columns: 1fr; }
	.teamCard__name { font-size: 18px; }
	.testiCard__quote { font-size: 16px; }
	.galleryGrid { grid-template-columns: 1fr; }
	.filterBtn, .pill, .photoCard__tag, .gallery__item__tag, .hero__cardTag, .hero__cardBadge { font-size: 11px; }
	.valuesBlock__title { font-size: 10.5vw; }
	.values__line:nth-child(2) { margin-left: 12vw; }
	.footerBlock__top { gap: 1.4rem; }
	.footer__title { font-size: 15vw; }
	.footer__sub { font-size: 15px; }
	.mainButton { font-size: 14px; padding: 1rem 1.6rem; }
	.footerBlock__bottom { grid-template-columns: 1fr 1fr; }
	.links__link { font-size: 9vw; }
	.menu__links { gap: 1.2rem; }
	.bottom__networks { flex-direction: row; gap: 1.2rem; }
	.cardAside { gap: 12px; }
	.medalCard { padding: 1.5rem 1.25rem; gap: .9rem; }
	.medalCard__title { font-size: 26px; }
	.medalCard__text { font-size: 14px; }
	.medalCard__badgeText { font-size: 11px; }
	.medalCard__star { width: 34px; height: 34px; }
	.pathCard { padding: 1.1rem 1.25rem; }
	.pathCard__flow { font-size: 15px; }
	.pathCard__label { font-size: 12px; }
	.journeyPhotoCard { min-height: 12rem; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
	[data-reveal='lines'] .line-inner { transform: none; }
	[data-reveal='fade'], [data-reveal='zoom'], [data-reveal='card'] { opacity: 1; transform: none; clip-path: none; }
	.loaderBlock.is-done { transform: none; visibility: hidden; }
	.pageTransitionOverlay { display: none; }
}
