/* ==========================================================================
   कालीतोली — design system
   Palette drawn from the logo: forest canopy greens, the plum/aubergine
   wordmark, warm parchment, antique gold. Devanagari-first typography.
   ========================================================================== */

:root {
	/* Colour */
	--forest-950: #121a15;
	--forest-900: #1b2620;
	--forest-800: #22312a;
	--forest-700: #2f4436;
	--forest-500: #4e6b57;
	--sage-300: #a9bba7;
	--sage-100: #e3eadf;
	--plum-950: #1f1118;
	--plum-900: #2b1822;
	--plum-700: #5c2238;
	--plum-600: #73304a;
	--plum-100: #f1e4e8;
	--ivory: #fbf8f1;
	--parchment: #f4ecdc;
	--parchment-2: #e9dcc3;
	--ink: #1f1b18;
	--ink-2: #4a433c;
	--muted: #776d62;
	--line: #ddd0b8;
	--gold: #b08442;
	--gold-2: #d1a964;
	--copper: #a35f36;
	--white: #fff;

	/* Province accents (map) */
	--p-koshi: #6d8f7a;
	--p-madhesh: #c79a4b;
	--p-bagmati: #8a5a6b;
	--p-gandaki: #5f7f99;
	--p-lumbini: #a5764f;
	--p-karnali: #7b8a55;
	--p-sudurpashchim: #73304a;

	/* Type */
	--f-display: "Kalitoli Display", "Noto Serif Devanagari", Georgia, serif;
	--f-serif: "Noto Serif Devanagari", "Kalitoli Display", Georgia, serif;
	--f-ui: "Mukta", "Noto Sans Devanagari", system-ui, sans-serif;
	--fs-xs: .85rem;
	--fs-sm: .95rem;
	--fs-md: 1.0625rem;
	--fs-lg: clamp(1.15rem, 1.05rem + .4vw, 1.3rem);
	--fs-h3: clamp(1.25rem, 1.1rem + .6vw, 1.55rem);
	--fs-h2: clamp(1.7rem, 1.35rem + 1.4vw, 2.6rem);
	--fs-h1: clamp(2.2rem, 1.6rem + 2.6vw, 3.8rem);
	--fs-display: clamp(2.5rem, 1.7rem + 3.8vw, 5.2rem);
	--lh-body: 1.85;
	--lh-tight: 1.35;

	/* Space */
	--s1: .25rem; --s2: .5rem; --s3: .75rem; --s4: 1rem; --s5: 1.5rem; --s6: 2rem; --s7: 3rem; --s8: 4rem; --s9: 6rem;
	--section: clamp(3.5rem, 2.5rem + 4vw, 6.5rem);
	--wrap: 1280px;
	--measure: 44rem;
	--radius: 14px;
	--radius-sm: 8px;
	--shadow-1: 0 1px 2px rgba(31, 27, 24, .06), 0 4px 16px rgba(31, 27, 24, .06);
	--shadow-2: 0 2px 6px rgba(31, 27, 24, .08), 0 18px 40px rgba(31, 27, 24, .12);
	--ease: cubic-bezier(.2, .7, .2, 1);
	--arch: 50% 50% var(--radius) var(--radius) / 32% 32% var(--radius) var(--radius);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 90px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; } }
body {
	margin: 0;
	background: var(--ivory);
	color: var(--ink);
	font-family: var(--f-ui);
	font-size: var(--fs-md);
	line-height: var(--lh-body);
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--plum-700); text-decoration-thickness: 1px; text-underline-offset: .22em; }
a:hover { color: var(--plum-600); }
h1, h2, h3, h4 { font-family: var(--f-display); font-weight: 400; line-height: var(--lh-tight); margin: 0 0 var(--s4); color: var(--ink); letter-spacing: 0; }
p { margin: 0 0 var(--s4); }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; border-radius: 4px; }
::selection { background: var(--plum-700); color: var(--ivory); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.skip { position: absolute; left: -999px; top: 0; z-index: 100; background: var(--forest-900); color: var(--ivory); padding: var(--s3) var(--s4); }
.skip:focus { left: var(--s4); top: var(--s4); }
.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: clamp(1rem, 4vw, 2.5rem); }
.wrap--wide { max-width: 1440px; }
.center { text-align: center; }

/* ---------- Buttons, chips, badges ---------- */
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	min-height: 46px; padding: .55em 1.35em; border-radius: 999px; border: 1.5px solid transparent;
	font-family: var(--f-ui); font-weight: 600; font-size: var(--fs-sm); line-height: 1.2; text-decoration: none; cursor: pointer;
	transition: transform .25s var(--ease), background-color .25s, color .25s, border-color .25s, box-shadow .25s;
}
.btn:hover { transform: translateY(-2px); }
.btn--solid { background: var(--plum-700); color: var(--ivory); }
.btn--solid:hover { background: var(--plum-600); color: var(--white); box-shadow: 0 8px 24px rgba(92, 34, 56, .3); }
.btn--ghost { background: transparent; color: var(--plum-700); border-color: currentColor; }
.btn--ghost:hover { background: var(--plum-100); }
.btn--gold { background: var(--gold); color: var(--forest-950); }
.btn--gold:hover { background: var(--gold-2); color: var(--forest-950); }
.btn--line { border-color: rgba(251, 248, 241, .6); color: var(--ivory); background: rgba(255, 255, 255, .04); }
.btn--line:hover { background: rgba(255, 255, 255, .12); color: var(--white); }
.btn--lg { min-height: 54px; padding-inline: 2em; font-size: var(--fs-md); }
.chips { display: flex; flex-wrap: wrap; gap: var(--s2); margin: 0 0 var(--s5); }
.chip {
	display: inline-flex; align-items: center; gap: .4em; padding: .3em .95em; border-radius: 999px; min-height: 38px;
	background: var(--white); border: 1px solid var(--line); color: var(--ink-2); font-size: var(--fs-sm); text-decoration: none; cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s;
}
.chip small { color: var(--muted); font-size: .8em; }
.chip:hover { border-color: var(--plum-700); color: var(--plum-700); }
.chip.is-active { background: var(--plum-700); border-color: var(--plum-700); color: var(--ivory); }
.chip.is-active small { color: var(--plum-100); }
.chip--place { background: var(--sage-100); border-color: var(--sage-300); }
.chips--dark .chip { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .18); color: var(--parchment); }
.chips--dark .chip:hover { background: rgba(255, 255, 255, .14); color: var(--white); }
.badge { display: inline-block; padding: .15em .6em; border-radius: 6px; font-size: var(--fs-xs); font-weight: 700; }
.badge--pdf { background: var(--plum-700); color: var(--ivory); }
.kicker {
	display: inline-block; font-family: var(--f-ui); font-size: var(--fs-xs); font-weight: 600; letter-spacing: .02em;
	color: var(--copper); text-decoration: none; margin-bottom: var(--s2);
}
a.kicker:hover { color: var(--plum-700); }

/* ---------- Top bar & header ---------- */
.topbar { background: var(--forest-950); color: var(--sage-300); font-size: var(--fs-xs); }
.topbar__in { display: flex; justify-content: space-between; align-items: center; gap: var(--s4); min-height: 36px; }
.topbar a { color: var(--parchment); text-decoration: none; margin-left: var(--s4); }
.topbar a:hover { color: var(--gold-2); }
@media (max-width: 640px) { .topbar__links { display: none; } }

.site-header { position: sticky; top: 0; z-index: 50; background: rgba(251, 248, 241, .92); backdrop-filter: saturate(1.4) blur(10px); -webkit-backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--line); transition: box-shadow .3s; }
.site-header.is-scrolled { box-shadow: 0 6px 24px rgba(31, 27, 24, .08); }
.site-header__in { display: flex; align-items: center; gap: var(--s5); min-height: 76px; }
.brand { display: flex; align-items: center; gap: var(--s3); text-decoration: none; color: var(--ink); flex-shrink: 0; }
.brand__logo { width: 54px; height: 54px; transition: transform .6s var(--ease); }
.brand:hover .brand__logo { transform: rotate(-8deg) scale(1.04); }
.brand__text { display: flex; flex-direction: column; line-height: 1.15; }
.brand__name { font-family: var(--f-display); font-size: 1.65rem; color: var(--plum-900); }
.brand__tag { font-size: .78rem; color: var(--muted); }
.nav { margin-left: auto; }
.nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: clamp(.4rem, 1.2vw, 1.2rem); }
.nav__list a { position: relative; display: block; padding: .5rem .15rem; color: var(--ink); text-decoration: none; font-weight: 500; white-space: nowrap; }
.nav__list a::after { content: ""; position: absolute; left: 0; right: 0; bottom: .2rem; height: 2px; background: var(--plum-700); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
.nav__list a:hover::after, .nav__list .is-current > a::after, .nav__list .current-menu-item > a::after { transform: scaleX(1); }
.nav__list .is-current > a, .nav__list .current-menu-item > a { color: var(--plum-700); }
.nav__search { display: none; }
.site-header__tools { display: flex; gap: var(--s2); }
.icon-btn { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line); background: var(--white); cursor: pointer; color: var(--ink); }
.icon-btn:hover { border-color: var(--plum-700); color: var(--plum-700); }
.nav-toggle { display: none; }
.nav-toggle span { display: block; width: 18px; height: 2px; background: currentColor; margin: 2px 0; transition: transform .3s, opacity .3s; }
.search-panel { border-top: 1px solid var(--line); padding: var(--s4) 0; background: var(--ivory); }
.search-form { display: flex; gap: var(--s2); width: 100%; }
.search-form__input { flex: 1; min-width: 0; min-height: 48px; padding: .5em 1em; border: 1.5px solid var(--line); border-radius: 999px; background: var(--white); }
.search-form__input:focus { border-color: var(--plum-700); outline: none; box-shadow: 0 0 0 4px rgba(115, 48, 74, .12); }
.search-form__btn { min-height: 48px; padding: 0 1.4em; border-radius: 999px; border: 0; background: var(--plum-700); color: var(--ivory); font-weight: 600; cursor: pointer; }

@media (max-width: 1080px) {
	.nav-toggle { display: inline-grid; }
	.nav {
		position: fixed; inset: 0 0 0 auto; width: min(88vw, 380px); background: var(--forest-900); color: var(--ivory);
		padding: 6rem var(--s5) var(--s5); transform: translateX(100%); visibility: hidden; transition: transform .4s var(--ease), visibility 0s linear .4s; overflow-y: auto; z-index: 60;
		box-shadow: -20px 0 60px rgba(0, 0, 0, .35);
	}
	.nav.is-open { transform: none; visibility: visible; transition: transform .4s var(--ease), visibility 0s; }
	.nav__list { flex-direction: column; gap: 0; }
	.nav__list a { color: var(--parchment); font-family: var(--f-display); font-size: 1.45rem; padding: .7rem 0; border-bottom: 1px solid rgba(255, 255, 255, .08); }
	.nav__list a::after { display: none; }
	.nav__list .is-current > a, .nav__list .current-menu-item > a { color: var(--gold-2); }
	.nav__search { display: block; margin-top: var(--s5); }
	.nav-open .nav-toggle { position: relative; z-index: 70; background: var(--forest-800); color: var(--ivory); border-color: transparent; }
	.nav-open .nav-toggle span:nth-child(1) { transform: translateY(4px) rotate(45deg); }
	.nav-open .nav-toggle span:nth-child(2) { opacity: 0; }
	.nav-open .nav-toggle span:nth-child(3) { transform: translateY(-4px) rotate(-45deg); }
	.nav-open::after { content: ""; position: fixed; inset: 0; background: rgba(18, 26, 21, .5); z-index: 55; }
}
@media (max-width: 420px) { .brand__tag { display: none; } .brand__logo { width: 46px; height: 46px; } .brand__name { font-size: 1.4rem; } }

/* ---------- Hero ---------- */
.hero { position: relative; isolation: isolate; color: var(--ivory); background: radial-gradient(120% 90% at 85% 10%, var(--forest-700), var(--forest-950) 70%); overflow: hidden; }
.hero__bg { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.04); animation: kt-drift 30s ease-in-out infinite alternate; }
@keyframes kt-drift { to { transform: scale(1.12) translate3d(-1.5%, -1%, 0); } }
.hero__veil { position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, rgba(18, 26, 21, .94) 0%, rgba(18, 26, 21, .78) 45%, rgba(18, 26, 21, .35) 100%), linear-gradient(0deg, rgba(18, 26, 21, .7), transparent 40%); }
.hero__in { display: grid; grid-template-columns: 1.25fr .9fr; align-items: center; gap: clamp(2rem, 5vw, 5rem); min-height: min(86vh, 820px); padding-block: clamp(3.5rem, 8vw, 7rem); }
.hero__in--single { grid-template-columns: 1fr; min-height: min(70vh, 640px); }
.hero__kicker { display: inline-flex; align-items: center; gap: .6em; color: var(--gold-2); font-weight: 600; font-size: var(--fs-sm); margin-bottom: var(--s5); }
.hero__kicker::before { content: ""; width: 36px; height: 1.5px; background: currentColor; }
.hero__title { font-size: var(--fs-display); line-height: 1.22; color: var(--ivory); margin-bottom: var(--s5); text-wrap: balance; max-width: 15ch; }
.hero__text { font-size: var(--fs-lg); color: rgba(251, 248, 241, .86); max-width: 38rem; margin-bottom: var(--s6); }
.hero__cta { display: flex; flex-wrap: wrap; gap: var(--s3); }
.hero__credit { position: absolute; bottom: .5rem; left: 0; right: 0; font-size: .75rem; color: rgba(251, 248, 241, .65); text-align: right; margin: 0; }
.hero__credit a { color: inherit; }
.hero .crumbs { color: rgba(251, 248, 241, .7); }
.hero .crumbs a { color: var(--parchment); }

/* Arched doorway with layered 3D frames — a nod to carved temple doors */
.hero__arch { position: relative; display: block; width: min(100%, 420px); aspect-ratio: 4 / 5.2; margin-left: auto; text-decoration: none; color: var(--ivory); perspective: 1200px; transform-style: preserve-3d; }
.hero__arch-img, .hero__arch-frame { position: absolute; inset: 0; border-radius: var(--arch); }
.hero__arch-img { overflow: hidden; box-shadow: 0 30px 80px rgba(0, 0, 0, .5); transform: translateZ(40px); transition: transform .5s var(--ease); background: var(--forest-800); }
.hero__arch-img img, .hero__arch-img .kt-img { width: 100%; height: 100%; object-fit: cover; }
.hero__arch-frame--back { transform: translate3d(22px, 22px, -30px); border: 1.5px solid rgba(209, 169, 100, .55); }
.hero__arch-frame--mid { transform: translate3d(11px, 11px, 0); background: repeating-linear-gradient(45deg, rgba(209, 169, 100, .18) 0 2px, transparent 2px 12px); border: 1px solid rgba(209, 169, 100, .35); }
.hero__arch-cap { position: absolute; left: 0; right: 0; bottom: 0; transform: translateZ(70px); padding: 4.5rem 1.4rem 1.4rem; border-radius: 0 0 var(--radius) var(--radius); background: linear-gradient(0deg, rgba(18, 26, 21, .95), transparent); font-family: var(--f-display); font-size: 1.3rem; line-height: 1.4; }
.hero__arch-cap small { display: block; font-family: var(--f-ui); font-size: .78rem; color: var(--gold-2); margin-bottom: .2rem; }
[data-tilt] { transition: transform .6s var(--ease); will-change: transform; }
@media (max-width: 900px) {
	.hero__in { grid-template-columns: 1fr; min-height: 0; }
	.hero__arch { margin: 0 auto; width: min(78%, 340px); }
	.hero__title { max-width: none; }
}

/* ---------- Sections ---------- */
.section { padding-block: var(--section); }
.section--forest { background: var(--forest-900); color: var(--parchment); }
.section--forest h2, .section--forest h3 { color: var(--ivory); }
.section--plum { background: radial-gradient(90% 120% at 0% 0%, var(--plum-700), var(--plum-950) 70%); color: var(--parchment); }
.section--plum h2, .section--plum h3, .section--plum .card__title a { color: var(--ivory); }
.section-head { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 0 var(--s5); margin-bottom: var(--s6); border-bottom: 1px solid var(--line); padding-bottom: var(--s4); }
.section--forest .section-head, .section--plum .section-head { border-color: rgba(255, 255, 255, .14); }
.section-head__kicker { grid-column: 1; margin: 0 0 var(--s1); font-size: var(--fs-sm); color: var(--copper); }
.section--forest .section-head__kicker, .section--plum .section-head__kicker { color: var(--gold-2); }
.section-head__title { grid-column: 1; font-size: var(--fs-h2); margin: 0; }
.section-head__link { grid-column: 2; grid-row: 1 / span 2; align-self: end; font-weight: 600; text-decoration: none; white-space: nowrap; }
.section--forest .section-head__link, .section--plum .section-head__link { color: var(--gold-2); }
@media (max-width: 560px) { .section-head { grid-template-columns: 1fr; } .section-head__link { grid-column: 1; grid-row: auto; margin-top: var(--s3); } }

.ornament { color: var(--gold); opacity: .55; height: 18px; overflow: hidden; }
.ornament svg { width: 100%; height: 18px; }

/* ---------- Grids & cards ---------- */
.grid { display: grid; gap: clamp(1.25rem, 2.5vw, 2rem); }
.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid--lit { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.span-all { grid-column: 1 / -1; }
@media (max-width: 1000px) { .grid--3, .grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .grid--2, .grid--3, .grid--4 { grid-template-columns: 1fr; } }

.card { position: relative; display: flex; flex-direction: column; min-width: 0; }
.card__media { display: block; overflow: hidden; border-radius: var(--radius); background: var(--parchment-2); aspect-ratio: 3 / 2; margin-bottom: var(--s4); }
.card__media img, .card__media .kt-img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease), filter .8s; }
.card:hover .card__media img { transform: scale(1.05); }
.card__title { font-size: var(--fs-h3); margin-bottom: var(--s2); text-wrap: pretty; }
.card__title a { color: var(--ink); text-decoration: none; background-image: linear-gradient(currentColor, currentColor); background-size: 0 1.5px; background-repeat: no-repeat; background-position: 0 92%; transition: background-size .45s var(--ease); }
.card__title a:hover { background-size: 100% 1.5px; }
.card__excerpt { color: var(--ink-2); font-size: var(--fs-sm); margin-bottom: var(--s3); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.section--plum .card__excerpt, .section--forest .card__excerpt { color: rgba(244, 236, 220, .78); }
.meta { display: flex; flex-wrap: wrap; align-items: center; gap: .1em .5em; color: var(--muted); font-size: var(--fs-xs); margin: 0; }
.meta a { color: var(--ink-2); font-weight: 600; text-decoration: none; }
.meta a:hover { color: var(--plum-700); }
.section--plum .meta, .section--forest .meta { color: rgba(244, 236, 220, .62); }
.section--plum .meta a, .section--forest .meta a { color: var(--parchment); }
.meta__dot { opacity: .5; }

.card--wide { display: grid; grid-template-columns: 1.35fr 1fr; gap: clamp(1.25rem, 3vw, 2.5rem); align-items: center; }
.card--wide .card__media { aspect-ratio: 16 / 10; margin: 0; }
.card--wide .card__title { font-size: var(--fs-h2); }
@media (max-width: 760px) { .card--wide { grid-template-columns: 1fr; } }
.card--arch .card__media { aspect-ratio: 4 / 5; border-radius: var(--arch); }
.card--mini { display: grid; grid-template-columns: 112px 1fr; gap: var(--s4); align-items: center; padding-block: var(--s4); border-bottom: 1px solid var(--line); }
.card--mini:last-child { border-bottom: 0; }
.card--mini .card__media { margin: 0; aspect-ratio: 1; border-radius: var(--radius-sm); }
.card--mini .card__title { font-size: 1.12rem; margin-bottom: var(--s1); }
.card--text, .card--poem { padding: var(--s5); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow-1); }
.card--poem { background: var(--parchment); border-left: 3px solid var(--gold); }
.card__poem { font-family: var(--f-serif); font-size: 1.02rem; line-height: 2; color: var(--ink-2); font-style: italic; }
.section--plum .card--poem { background: rgba(255, 255, 255, .06); border-left-color: var(--gold-2); box-shadow: none; }
.section--plum .card__poem { color: rgba(244, 236, 220, .85); }

.kt-img--empty { display: grid !important; place-items: center; width: 100%; height: 100%; aspect-ratio: inherit; background:
	radial-gradient(circle at 50% 120%, rgba(176, 132, 66, .28), transparent 60%),
	repeating-linear-gradient(45deg, rgba(47, 68, 54, .08) 0 2px, transparent 2px 14px),
	linear-gradient(160deg, var(--forest-700), var(--forest-900)); color: var(--parchment); font-family: var(--f-display); font-size: 1.35rem; text-align: center; padding: var(--s4); }

/* ---------- Homepage blocks ---------- */
.feature { background: linear-gradient(180deg, var(--parchment) 0, var(--ivory) 100%); }
.feature__in { display: grid; grid-template-columns: 1.4fr 1fr; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.feature__media { display: block; border-radius: var(--radius); overflow: hidden; aspect-ratio: 16 / 11; box-shadow: var(--shadow-2); }
.feature__media img, .feature__media .kt-img { width: 100%; height: 100%; object-fit: cover; }
.feature__label { font-family: var(--f-display); font-size: 1rem; color: var(--muted); margin-bottom: var(--s2); }
.feature__title { font-size: var(--fs-h1); }
.feature__title a { color: var(--ink); text-decoration: none; }
.feature__title a:hover { color: var(--plum-700); }
.feature__excerpt { font-size: var(--fs-lg); color: var(--ink-2); }
.feature .meta { margin-bottom: var(--s5); }
@media (max-width: 860px) { .feature__in { grid-template-columns: 1fr; } }

.gateways__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s4); }
@media (max-width: 900px) { .gateways__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.gate a { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 190px; padding: var(--s5); border-radius: var(--radius); overflow: hidden; text-decoration: none; color: var(--ivory); background: linear-gradient(160deg, var(--forest-700), var(--forest-950)); isolation: isolate; transition: transform .4s var(--ease), box-shadow .4s; }
.gate:nth-child(3n+2) a { background: linear-gradient(160deg, var(--plum-600), var(--plum-950)); }
.gate:nth-child(4n+3) a { background: linear-gradient(160deg, #6e5530, #2c2214); }
.gate a:hover { transform: translateY(-6px); box-shadow: var(--shadow-2); }
.gate__img { position: absolute; inset: 0; z-index: -1; opacity: .38; transition: opacity .4s, transform .8s var(--ease); }
.gate__img img { width: 100%; height: 100%; object-fit: cover; }
.gate a:hover .gate__img { opacity: .55; transform: scale(1.06); }
.gate a::before { content: ""; position: absolute; top: var(--s4); right: var(--s4); width: 34px; height: 34px; border: 1.5px solid rgba(209, 169, 100, .7); transform: rotate(45deg); }
.gate__name { font-family: var(--f-display); font-size: 1.4rem; line-height: 1.3; }
.gate__count { font-size: var(--fs-xs); color: var(--gold-2); }

.picks__grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: clamp(1.5rem, 3vw, 3rem); }
@media (max-width: 900px) { .picks__grid { grid-template-columns: 1fr; } }
.picks__lead .card--wide { grid-template-columns: 1fr; }

.latest__grid { display: grid; grid-template-columns: 1fr 300px; gap: clamp(1.5rem, 3vw, 3rem); }
@media (max-width: 1000px) { .latest__grid { grid-template-columns: 1fr; } }
.popular { align-self: start; position: sticky; top: 100px; background: var(--parchment); border-radius: var(--radius); padding: var(--s5); }
.popular__h { font-size: 1.5rem; border-bottom: 2px solid var(--plum-700); padding-bottom: var(--s2); }
.popular__list { counter-reset: pop; list-style: none; margin: 0; padding: 0; }
.popular__list li { counter-increment: pop; display: grid; grid-template-columns: 2.2rem 1fr; padding: var(--s3) 0; border-bottom: 1px dashed var(--line); }
.popular__list li::before { content: counter(pop, devanagari); grid-row: span 2; font-family: var(--f-display); font-size: 1.8rem; line-height: 1; color: var(--gold); }
.popular__list a { color: var(--ink); text-decoration: none; font-weight: 600; line-height: 1.5; }
.popular__list a:hover { color: var(--plum-700); }
.popular__list span { font-size: var(--fs-xs); color: var(--muted); }

.research-list { list-style: none; margin: 0; padding: 0; }
.research-item { display: grid; grid-template-columns: 4rem 1fr auto; gap: var(--s4); align-items: start; padding: var(--s5) 0; border-bottom: 1px solid var(--line); }
.research-item__no { font-family: var(--f-display); font-size: 2.2rem; line-height: 1; color: var(--gold); }
.research-item__title { font-size: var(--fs-h3); margin-bottom: var(--s2); }
.research-item__title a { color: var(--ink); text-decoration: none; }
.research-item__title a:hover { color: var(--plum-700); }

.rail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(270px, 340px); gap: var(--s5); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: var(--s4); scrollbar-color: var(--gold) transparent; }
.rail > * { scroll-snap-align: start; }

.archive-band__grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: var(--s5); }
@media (max-width: 960px) { .archive-band__grid { grid-template-columns: 1fr; } }
.archive-tile { display: flex; flex-direction: column; gap: var(--s3); padding: var(--s5); border-radius: var(--radius); background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .1); text-decoration: none; color: var(--parchment); transition: background-color .3s, transform .4s var(--ease); }
a.archive-tile:hover { background: rgba(255, 255, 255, .09); transform: translateY(-4px); color: var(--ivory); }
.archive-tile__h { font-family: var(--f-display); font-size: 1.6rem; color: var(--ivory); }
.archive-tile__t { color: rgba(244, 236, 220, .75); }
.archive-tile__link { margin-top: auto; color: var(--gold-2); font-weight: 600; text-decoration: none; }
.mini-timeline { list-style: none; margin: 0; padding: 0 0 0 var(--s4); border-left: 1.5px solid rgba(209, 169, 100, .5); }
.mini-timeline li { position: relative; padding-bottom: var(--s3); line-height: 1.55; }
.mini-timeline li::before { content: ""; position: absolute; left: calc(-1 * var(--s4) - 5px); top: .55em; width: 9px; height: 9px; border-radius: 50%; background: var(--gold); }
.mini-timeline b { display: block; color: var(--gold-2); font-weight: 600; font-size: var(--fs-xs); }
.word-cloud { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--s2); }
.word-cloud a { display: inline-block; padding: .2em .8em; border-radius: 999px; border: 1px solid rgba(209, 169, 100, .4); color: var(--parchment); text-decoration: none; font-family: var(--f-display); }
.word-cloud a:hover { background: var(--gold); color: var(--forest-950); }

/* Map shapes */
.nepal-map { width: 100%; height: auto; overflow: visible; }
.nepal-map path { fill: var(--forest-700); stroke: var(--forest-950); stroke-width: .8; stroke-linejoin: round; transition: fill .25s, opacity .25s; }
.mini-map path { fill: rgba(169, 187, 167, .25); stroke: rgba(18, 26, 21, .9); }
.mini-map .is-hl { fill: var(--gold); }
.region-map { max-width: 560px; justify-self: end; }
.region-map path { fill: var(--parchment-2); stroke: var(--ivory); }
.region-map .is-hl { fill: var(--sage-300); }
.region-map .is-focus { fill: var(--plum-700); }

.farwest { position: relative; isolation: isolate; color: var(--ivory); background: var(--plum-950); overflow: hidden; }
.farwest__bg { position: absolute; inset: 0; z-index: -2; }
.farwest__bg img { width: 100%; height: 100%; object-fit: cover; }
.farwest__veil { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(31, 17, 24, .95), rgba(31, 17, 24, .7) 55%, rgba(31, 17, 24, .45)); }
.farwest__in { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(2rem, 4vw, 4rem); align-items: center; }
@media (max-width: 900px) { .farwest__in { grid-template-columns: 1fr; } }
.farwest__title { font-size: var(--fs-h1); color: var(--ivory); }
.farwest__text { font-size: var(--fs-lg); color: rgba(251, 248, 241, .85); max-width: 36rem; }
.farwest .section-head__kicker { color: var(--gold-2); }
.farwest__list { background: rgba(251, 248, 241, .96); color: var(--ink); border-radius: var(--radius); padding: var(--s2) var(--s5); }
.district-chips { list-style: none; padding: 0; margin: var(--s5) 0 var(--s6); display: flex; flex-wrap: wrap; gap: var(--s2); }
.district-chips a { display: inline-block; padding: .3em 1em; border-radius: 999px; border: 1px solid rgba(209, 169, 100, .55); color: var(--ivory); text-decoration: none; }
.district-chips a:hover { background: var(--gold); color: var(--plum-950); }
.district-chips--light a { color: var(--plum-700); border-color: var(--line); background: var(--white); }

.writer-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: var(--s5); }
.writer-chip a { display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--s2); padding: var(--s5) var(--s3); border-radius: var(--radius); text-decoration: none; color: var(--ink); background: var(--white); box-shadow: var(--shadow-1); transition: transform .4s var(--ease), box-shadow .4s; }
.writer-chip a:hover { transform: translateY(-5px); box-shadow: var(--shadow-2); }
.writer-chip__name { font-family: var(--f-display); font-size: 1.25rem; line-height: 1.3; }
.writer-chip__meta { font-size: var(--fs-xs); color: var(--muted); }
.avatar { display: grid; place-items: center; width: 92px; height: 92px; border-radius: 50%; overflow: hidden; background: linear-gradient(150deg, var(--plum-700), var(--forest-800)); color: var(--ivory); font-family: var(--f-display); font-size: 2.4rem; box-shadow: 0 0 0 3px var(--ivory), 0 0 0 4.5px var(--gold); }
.avatar img { width: 100%; height: 100%; object-fit: cover; }
.avatar--lg { width: 104px; height: 104px; flex-shrink: 0; text-decoration: none; }

.newsletter { background: var(--parchment); border-top: 1px solid var(--line); }
.newsletter__in { display: grid; grid-template-columns: 1fr 1.1fr; gap: var(--s6); align-items: center; }
@media (max-width: 820px) { .newsletter__in { grid-template-columns: 1fr; } }
.newsletter__title { font-size: var(--fs-h2); }
.newsletter__form { display: flex; flex-wrap: wrap; gap: var(--s3); }
.newsletter__form input[type="email"] { flex: 1 1 240px; min-height: 52px; padding: 0 1.2em; border: 1.5px solid var(--line); border-radius: 999px; background: var(--white); }
.newsletter__form .form-msg { flex-basis: 100%; }
.kt-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Page heroes, breadcrumbs ---------- */
.page-hero { background: linear-gradient(180deg, var(--parchment), var(--ivory)); padding-top: clamp(2rem, 5vw, 4rem); }
.page-hero .wrap { padding-bottom: clamp(1.5rem, 4vw, 3rem); }
.page-hero__title { font-size: var(--fs-h1); margin-bottom: var(--s3); }
.page-hero__text { font-size: var(--fs-lg); color: var(--ink-2); max-width: 46rem; }
.page-hero__links { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s5); }
.page-hero__links a { font-weight: 600; text-decoration: none; }
.page-hero--literature { background: linear-gradient(180deg, var(--plum-100), var(--ivory)); }
.page-hero--culture { background: linear-gradient(180deg, var(--sage-100), var(--ivory)); }
.crumbs ol { list-style: none; margin: 0 0 var(--s4); padding: 0; display: flex; flex-wrap: wrap; gap: .25em; font-size: var(--fs-xs); color: var(--muted); }
.crumbs li + li::before { content: "›"; margin-right: .35em; opacity: .6; }
.crumbs a { color: var(--ink-2); text-decoration: none; }
.crumbs a:hover { color: var(--plum-700); }

.archive { padding-block: var(--s6) var(--section); }
.archive__h { font-size: var(--fs-h2); margin: var(--s7) 0 var(--s5); }
.archive__grid { margin-top: var(--s5); }
.filters { display: flex; flex-wrap: wrap; gap: var(--s4); align-items: center; margin-bottom: var(--s4); font-size: var(--fs-sm); color: var(--ink-2); }
.filters select { margin-left: .4em; min-height: 42px; padding: 0 .8em; border-radius: var(--radius-sm); border: 1px solid var(--line); background: var(--white); }
.archive-search { display: flex; gap: var(--s2); max-width: 560px; }
.archive-search input { flex: 1; min-width: 0; min-height: 46px; padding: 0 1em; border-radius: 999px; border: 1.5px solid var(--line); background: var(--white); }
.pager { margin-top: var(--s7); }
.pager ul { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s2); padding: 0; margin: 0; }
.pager a, .pager span { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0 .9em; border-radius: 999px; border: 1px solid var(--line); text-decoration: none; color: var(--ink); background: var(--white); }
.pager .current { background: var(--plum-700); color: var(--ivory); border-color: var(--plum-700); }
.pager a:hover { border-color: var(--plum-700); color: var(--plum-700); }
.empty { text-align: center; padding: var(--s8) var(--s4); color: var(--muted); border: 1.5px dashed var(--line); border-radius: var(--radius); margin: var(--s5) 0; }
.empty svg { margin: 0 auto var(--s3); color: var(--gold); }

/* ---------- Article ---------- */
.article__head { max-width: 980px; padding-top: clamp(2rem, 5vw, 4rem); padding-bottom: var(--s5); }
.article__title { font-size: var(--fs-h1); line-height: 1.3; text-wrap: balance; }
.article__subtitle { font-size: var(--fs-lg); color: var(--ink-2); font-family: var(--f-serif); }
.article__head .meta { font-size: var(--fs-sm); padding-top: var(--s3); border-top: 1px solid var(--line); margin-top: var(--s4); }
.event-pill { display: inline-block; margin-top: var(--s4); padding: .35em 1em; background: var(--sage-100); border-radius: 999px; font-size: var(--fs-sm); }
.article__hero { margin: 0 auto var(--s6); }
.article__hero img { width: 100%; max-height: 78vh; object-fit: cover; border-radius: var(--radius); }
.article__hero figcaption { font-size: var(--fs-xs); color: var(--muted); padding-top: var(--s2); }
.kt-credit { opacity: .9; }
.kt-credit a { color: inherit; }
.article__layout { display: grid; grid-template-columns: minmax(0, var(--measure)); justify-content: center; gap: clamp(2rem, 4vw, 4rem); padding-bottom: var(--section); }
.article__layout.has-toc { grid-template-columns: 250px minmax(0, var(--measure)); }
@media (max-width: 1000px) { .article__layout.has-toc { grid-template-columns: minmax(0, 1fr); } }
.toc { align-self: start; position: sticky; top: 100px; font-size: var(--fs-sm); }
.toc summary { font-family: var(--f-display); font-size: 1.2rem; cursor: pointer; padding-bottom: var(--s2); border-bottom: 2px solid var(--plum-700); margin-bottom: var(--s3); }
.toc ol { list-style: none; margin: 0; padding: 0; }
.toc li { margin-bottom: var(--s2); line-height: 1.5; }
.toc a { color: var(--ink-2); text-decoration: none; display: block; border-left: 2px solid transparent; padding-left: var(--s3); }
.toc a:hover, .toc a.is-active { color: var(--plum-700); border-color: var(--plum-700); }
.toc__l3 { padding-left: var(--s4); }
@media (max-width: 1000px) { .toc { position: static; background: var(--parchment); border-radius: var(--radius); padding: var(--s4); } }

.prose { font-size: 1.12rem; line-height: 1.95; color: var(--ink); overflow-wrap: break-word; }
.prose > * + * { margin-top: 1.1em; }
.prose p { margin: 0; }
.prose h2 { font-size: var(--fs-h2); margin: 2em 0 .6em; }
.prose h3 { font-size: var(--fs-h3); margin: 1.6em 0 .5em; }
.prose a { color: var(--plum-700); }
.prose img { border-radius: var(--radius-sm); }
.prose figure { margin: 2em 0; }
.prose figcaption, .prose .wp-element-caption { font-size: var(--fs-xs); color: var(--muted); text-align: center; margin-top: .5em; }
.prose blockquote { margin: 2em 0; padding: var(--s4) var(--s5); border-left: 3px solid var(--gold); background: var(--parchment); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; font-family: var(--f-serif); font-size: 1.15rem; }
.prose ul, .prose ol { padding-left: 1.4em; }
.prose li + li { margin-top: .4em; }
.prose table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); display: block; overflow-x: auto; }
.prose th, .prose td { border: 1px solid var(--line); padding: .5em .75em; text-align: left; }
.prose hr { border: 0; height: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 18'%3E%3Cpath d='M30 2 37 9 30 16 23 9Z' fill='none' stroke='%23b08442'/%3E%3C/svg%3E") center / 60px 18px no-repeat; margin: 2.5em 0; }
.prose--literary { font-family: var(--f-serif); }
.prose--literary > p:first-of-type::first-letter { font-family: var(--f-display); float: left; font-size: 3.4em; line-height: .95; margin: .1em .12em 0 0; color: var(--plum-700); }

/* Poetry reading layout — lines preserved, centred column, generous leading */
.article--poem .article__head { text-align: center; max-width: 760px; }
.article--poem .article__head .meta { justify-content: center; }
.prose--poem { font-family: var(--f-serif); font-size: 1.2rem; line-height: 2.2; text-align: center; background: var(--parchment); border-radius: var(--radius); padding: clamp(1.5rem, 5vw, 3.5rem); box-shadow: inset 0 0 0 1px var(--line); }
.prose--poem p + p { margin-top: 1.6em; }
.prose--poem pre, .prose--poem .wp-block-verse { font-family: inherit; font-size: inherit; white-space: pre-wrap; background: none; border: 0; padding: 0; margin: 0; overflow: visible; }
.prose--poem > p:first-of-type::first-letter { float: none; font-size: inherit; color: inherit; margin: 0; }

.sources { margin-top: var(--s7); padding: var(--s5); background: var(--parchment); border-radius: var(--radius); font-size: var(--fs-sm); }
.sources h2 { font-size: 1.35rem; }
.sources ol { margin: 0; padding-left: 1.3em; }
.sources li { margin-bottom: var(--s2); overflow-wrap: anywhere; }
.taglist { display: flex; flex-wrap: wrap; gap: var(--s2); margin-top: var(--s6); }
.share { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); margin-top: var(--s6); padding-top: var(--s5); border-top: 1px solid var(--line); }
.share__label { font-weight: 600; margin-right: var(--s2); }
.share__btn { display: inline-flex; align-items: center; min-height: 40px; padding: 0 1em; border-radius: 999px; background: var(--white); border: 1px solid var(--line); color: var(--ink-2); text-decoration: none; font-size: var(--fs-sm); cursor: pointer; }
.share__btn:hover { border-color: var(--plum-700); color: var(--plum-700); }
.author-box { display: flex; gap: var(--s5); align-items: flex-start; margin-top: var(--s6); padding: var(--s5); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow-1); }
.author-box__label { font-size: var(--fs-xs); color: var(--copper); margin: 0; }
.author-box__name { font-size: 1.5rem; margin-bottom: var(--s2); }
.author-box__name a { color: var(--ink); text-decoration: none; }
.author-box__more { font-weight: 600; text-decoration: none; }
@media (max-width: 520px) { .author-box { flex-direction: column; } }
.related { background: var(--parchment); }

/* PDF documents component */
.kt-docs { margin-top: var(--s7); padding: clamp(1.25rem, 3vw, 2rem); border-radius: var(--radius); background: linear-gradient(145deg, var(--white), var(--parchment)); border: 1px solid var(--line); }
.kt-docs__h { font-size: 1.45rem; display: flex; align-items: center; gap: .5em; }
.kt-docs__h::before { content: ""; width: 24px; height: 2px; background: var(--plum-700); }
.kt-docs__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s4); }
.kt-doc { display: grid; grid-template-columns: auto 1fr auto; gap: var(--s4); align-items: center; padding: var(--s4); border-radius: var(--radius-sm); background: var(--white); border: 1px solid var(--line); }
.kt-doc__icon { color: var(--plum-700); }
.kt-doc__title { font-family: var(--f-ui); font-size: 1.08rem; font-weight: 600; margin: 0 0 var(--s1); }
.kt-doc__desc { font-size: var(--fs-sm); color: var(--ink-2); margin-bottom: var(--s1); }
.kt-doc__meta { font-size: var(--fs-xs); color: var(--muted); margin: 0; overflow-wrap: anywhere; }
.kt-doc__actions { display: flex; flex-wrap: wrap; gap: var(--s2); }
.kt-doc__actions .btn { min-height: 42px; padding-inline: 1.1em; }
@media (max-width: 680px) { .kt-doc { grid-template-columns: auto 1fr; } .kt-doc__actions { grid-column: 1 / -1; } .kt-doc__actions .btn { flex: 1; } }

/* ---------- Writer profile ---------- */
.profile-hero { background: linear-gradient(180deg, var(--plum-100), var(--ivory)); padding-block: clamp(2rem, 5vw, 4rem); }
.profile-hero__in { display: grid; grid-template-columns: 260px 1fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.profile-hero__photo { aspect-ratio: 4 / 5; border-radius: var(--arch); overflow: hidden; background: linear-gradient(150deg, var(--plum-700), var(--forest-800)); display: grid; place-items: center; box-shadow: var(--shadow-2); }
.profile-hero__photo img { width: 100%; height: 100%; object-fit: cover; }
.profile-hero__initial { font-family: var(--f-display); font-size: 6rem; color: var(--ivory); }
.profile-hero__name { font-size: var(--fs-h1); margin-bottom: var(--s2); }
.profile-hero__role { font-size: var(--fs-lg); color: var(--ink-2); }
.profile-hero__stats { display: flex; gap: var(--s5); color: var(--muted); }
.profile-hero__stats b { font-family: var(--f-display); font-size: 1.8rem; font-weight: 400; color: var(--plum-700); margin-right: .2em; }
.profile { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: clamp(2rem, 4vw, 4rem); padding-block: var(--s6) var(--section); }
.profile section + section { margin-top: var(--s7); }
.profile h2 { font-size: var(--fs-h2); }
.side-box { background: var(--parchment); border-radius: var(--radius); padding: var(--s5); }
.side-box h2 { font-size: 1.3rem; }
.book-list { margin: 0; padding-left: 1.2em; }
@media (max-width: 860px) { .profile-hero__in, .profile { grid-template-columns: 1fr; } .profile-hero__photo { width: 200px; } }

/* ---------- About ---------- */
.about { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: clamp(2rem, 4vw, 4rem); padding-block: var(--s6) var(--section); }
.about__nav { align-self: start; position: sticky; top: 100px; }
.about__nav ol { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--line); }
.about__nav a { display: block; padding: .35rem var(--s4); color: var(--ink-2); text-decoration: none; font-size: var(--fs-sm); }
.about__nav a:hover { color: var(--plum-700); }
.prose--about h2 { padding-top: var(--s5); border-top: 1px solid var(--line); }
.prose--about h2:first-child { border-top: 0; padding-top: 0; margin-top: 0; }
.leader { margin-top: var(--s7); }
.leader h2 { font-size: var(--fs-h2); }
.leader__card { display: grid; grid-template-columns: 220px 1fr; gap: var(--s6); align-items: center; padding: var(--s6); border-radius: var(--radius); background: var(--forest-900); color: var(--parchment); }
.leader__photo { aspect-ratio: 4 / 5; border-radius: var(--arch); overflow: hidden; background: linear-gradient(150deg, var(--plum-700), var(--forest-700)); display: grid; place-items: center; box-shadow: 0 0 0 6px rgba(209, 169, 100, .25); }
.leader__photo img { width: 100%; height: 100%; object-fit: cover; }
.leader__initial { font-family: var(--f-display); font-size: 5rem; color: var(--ivory); }
.leader__name { font-size: var(--fs-h2); color: var(--ivory); }
.leader .kicker { color: var(--gold-2); }
.leader__body .btn { margin: var(--s2) var(--s2) 0 0; }
@media (max-width: 860px) { .about { grid-template-columns: 1fr; } .about__nav { position: static; } .leader__card { grid-template-columns: 1fr; } .leader__photo { width: 180px; } }

/* ---------- Contact form ---------- */
.contact { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(2rem, 4vw, 4rem); padding-block: var(--s6) var(--section); align-items: start; }
@media (max-width: 900px) { .contact { grid-template-columns: 1fr; } }
.contact-cards { list-style: none; margin: 0 0 var(--s5); padding: 0; display: grid; gap: var(--s4); }
.contact-cards li { padding: var(--s4) var(--s5); border-left: 3px solid var(--gold); background: var(--white); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; box-shadow: var(--shadow-1); }
.contact-cards h2 { font-size: 1.25rem; margin-bottom: var(--s1); }
.contact-cards p { margin: 0; color: var(--ink-2); font-size: var(--fs-sm); }
.form { position: sticky; top: 100px; padding: clamp(1.25rem, 3vw, 2.25rem); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow-2); }
.form__row { display: flex; flex-direction: column; gap: var(--s1); margin-bottom: var(--s4); }
.form__row label { font-weight: 600; font-size: var(--fs-sm); }
.form__row label span { color: var(--plum-700); }
.form input[type="text"], .form input[type="email"], .form select, .form textarea { width: 100%; min-height: 48px; padding: .6em .9em; border: 1.5px solid var(--line); border-radius: var(--radius-sm); background: var(--ivory); transition: border-color .2s, box-shadow .2s; }
.form textarea { resize: vertical; min-height: 160px; }
.form input:focus, .form select:focus, .form textarea:focus { outline: none; border-color: var(--plum-700); box-shadow: 0 0 0 4px rgba(115, 48, 74, .12); background: var(--white); }
.form .is-invalid { border-color: #b3261e; }
.form__err { min-height: 1.2em; font-size: var(--fs-xs); color: #b3261e; }
.form__note { font-size: var(--fs-xs); color: var(--muted); }
.form-msg { padding: var(--s3) var(--s4); border-radius: var(--radius-sm); font-weight: 600; }
.form-msg--success { background: #e6f2e8; color: #1d5b2b; border: 1px solid #b9dcc0; }
.form-msg--error { background: #fbe9e7; color: #8c1d18; border: 1px solid #f2c4bf; }

/* ---------- Map page ---------- */
.map-page { padding-block: var(--s5) var(--section); }
.map-tools { display: flex; flex-direction: column; gap: var(--s4); margin-bottom: var(--s5); }
.map-tools input { max-width: 420px; min-height: 48px; padding: 0 1em; border-radius: 999px; border: 1.5px solid var(--line); background: var(--white); }
.map-legend { display: flex; flex-wrap: wrap; gap: var(--s2); }
.map-legend .chip::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--c, var(--forest-700)); }
.chip--koshi { --c: var(--p-koshi); } .chip--madhesh { --c: var(--p-madhesh); } .chip--bagmati { --c: var(--p-bagmati); } .chip--gandaki { --c: var(--p-gandaki); } .chip--lumbini { --c: var(--p-lumbini); } .chip--karnali { --c: var(--p-karnali); } .chip--sudurpashchim { --c: var(--p-sudurpashchim); }
.map-stage { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--s5); align-items: start; }
@media (max-width: 1000px) { .map-stage { grid-template-columns: 1fr; } }
.map-canvas { background: radial-gradient(circle at 50% 40%, var(--white), var(--parchment)); border-radius: var(--radius); padding: clamp(.75rem, 2vw, 1.75rem); border: 1px solid var(--line); perspective: 1400px; }
.big-map { transform: rotateX(18deg); transform-origin: 50% 70%; transition: transform .8s var(--ease); filter: drop-shadow(0 18px 18px rgba(31, 27, 24, .18)); }
.map-canvas:hover .big-map, .big-map.is-flat { transform: rotateX(0deg); }
.big-map a path { fill: color-mix(in srgb, var(--pc) 45%, #f3ecdd); stroke: var(--ivory); stroke-width: 1; cursor: pointer; }
.big-map a.has-content path { fill: var(--pc); }
.big-map a:hover path, .big-map a:focus path, .big-map a.is-active path { fill: var(--plum-950); }
.big-map a:focus { outline: none; }
.big-map .d--koshi { --pc: var(--p-koshi); } .big-map .d--madhesh { --pc: var(--p-madhesh); } .big-map .d--bagmati { --pc: var(--p-bagmati); } .big-map .d--gandaki { --pc: var(--p-gandaki); } .big-map .d--lumbini { --pc: var(--p-lumbini); } .big-map .d--karnali { --pc: var(--p-karnali); } .big-map .d--sudurpashchim { --pc: var(--p-sudurpashchim); }
.big-map.is-filtered a:not(.is-in) path { opacity: .18; }
.map-hint, .map-source { font-size: var(--fs-xs); color: var(--muted); margin: var(--s3) 0 0; }
.map-tip { position: fixed; z-index: 30; pointer-events: none; background: var(--forest-950); color: var(--ivory); padding: .25em .7em; border-radius: 6px; font-size: var(--fs-sm); transform: translate(-50%, -140%); white-space: nowrap; }
.map-panel { position: sticky; top: 100px; background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow-2); padding: var(--s5); min-height: 300px; }
.map-panel h2 { font-size: var(--fs-h3); margin-bottom: var(--s1); }
.map-panel__prov { color: var(--copper); font-size: var(--fs-sm); margin-bottom: var(--s4); }
.map-panel dl { margin: 0 0 var(--s4); }
.map-panel dt { font-weight: 600; font-size: var(--fs-xs); color: var(--muted); }
.map-panel dd { margin: 0 0 var(--s3); }
.map-panel__items { list-style: none; margin: 0 0 var(--s4); padding: 0; }
.map-panel__items li { display: grid; grid-template-columns: 64px 1fr; gap: var(--s3); align-items: center; padding: var(--s2) 0; border-bottom: 1px solid var(--line); }
.map-panel__items img, .map-panel__items .ph { width: 64px; height: 48px; object-fit: cover; border-radius: 6px; background: var(--parchment-2); }
.map-panel__items a { color: var(--ink); text-decoration: none; font-weight: 600; line-height: 1.4; }
.map-panel__items small { display: block; color: var(--muted); font-weight: 400; }
.map-panel.is-loading { opacity: .6; }

.profile-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--s4); margin: 0 0 var(--s6); }
.profile-facts > div { padding: var(--s4) var(--s5); background: var(--white); border-radius: var(--radius-sm); border-top: 3px solid var(--gold); box-shadow: var(--shadow-1); }
.profile-facts dt { font-size: var(--fs-xs); font-weight: 600; color: var(--copper); }
.profile-facts dd { margin: 0; }
.region-hero { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s6); align-items: center; }
@media (max-width: 860px) { .region-hero { grid-template-columns: 1fr; } }

/* ---------- Far-West page ---------- */
.hero--page .hero__title { font-size: var(--fs-h1); max-width: 20ch; }
.farwest-page { padding-block: var(--s7) var(--section); }
.farwest-page__intro { display: grid; grid-template-columns: 1.1fr 1fr; gap: var(--s6); align-items: center; }
@media (max-width: 860px) { .farwest-page__intro { grid-template-columns: 1fr; } }
.district-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: var(--s4); }
.district-card a { display: flex; flex-direction: column; height: 100%; padding: var(--s5); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow-1); color: var(--ink); text-decoration: none; border-top: 4px solid var(--plum-700); transition: transform .4s var(--ease), box-shadow .4s; }
.district-card a:hover { transform: translateY(-4px); box-shadow: var(--shadow-2); }
.district-card h3 { font-size: 1.6rem; margin-bottom: var(--s1); }
.district-card p { font-size: var(--fs-sm); color: var(--ink-2); margin-bottom: var(--s2); }
.district-card__hq { color: var(--copper) !important; }
.district-card__count { margin-top: auto; font-weight: 600; color: var(--plum-700); font-size: var(--fs-sm); }

/* ---------- Glossary & timeline ---------- */
.glossary-tools { position: sticky; top: 76px; z-index: 5; background: var(--ivory); padding: var(--s3) 0; border-bottom: 1px solid var(--line); margin-bottom: var(--s5); }
.glossary-tools input { width: 100%; max-width: 420px; min-height: 46px; padding: 0 1em; border-radius: 999px; border: 1.5px solid var(--line); background: var(--white); margin-bottom: var(--s2); }
.alpha { display: flex; flex-wrap: wrap; gap: var(--s1); }
.alpha a { display: inline-grid; place-items: center; min-width: 38px; height: 38px; border-radius: 50%; background: var(--white); border: 1px solid var(--line); text-decoration: none; font-family: var(--f-display); color: var(--ink); }
.alpha a:hover { background: var(--plum-700); color: var(--ivory); }
.glossary-group { display: grid; grid-template-columns: 80px 1fr; gap: var(--s4); padding: var(--s5) 0; border-bottom: 1px solid var(--line); }
.glossary-group__letter { font-size: 3rem; color: var(--gold); line-height: 1; }
.glossary { margin: 0; display: grid; gap: var(--s4); }
.glossary dt { font-family: var(--f-display); font-size: 1.35rem; }
.glossary dt a { color: var(--ink); text-decoration: none; }
.glossary dt a:hover { color: var(--plum-700); }
.glossary dt small { font-family: var(--f-ui); font-size: var(--fs-xs); color: var(--muted); }
.glossary dd { margin: 0; color: var(--ink-2); }
.glossary__item[hidden] { display: none; }
@media (max-width: 560px) { .glossary-group { grid-template-columns: 1fr; } }

.timeline { list-style: none; margin: var(--s6) auto var(--section); padding: 0; position: relative; max-width: 980px; }
.timeline::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; background: linear-gradient(var(--gold), var(--plum-700)); transform: translateX(-50%); }
.timeline__item { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: var(--s7); margin-bottom: var(--s6); }
.timeline__item::before { content: ""; position: absolute; left: 50%; top: .9rem; width: 16px; height: 16px; background: var(--ivory); border: 3px solid var(--plum-700); transform: translateX(-50%) rotate(45deg); }
.timeline__year { text-align: right; font-family: var(--f-display); font-size: 1.5rem; color: var(--plum-700); padding-top: .3rem; }
.timeline__item:nth-child(even) .timeline__year { order: 2; text-align: left; }
.timeline__item:nth-child(even) .timeline__card { order: 1; }
.timeline__card { background: var(--white); border-radius: var(--radius); padding: var(--s5); box-shadow: var(--shadow-1); }
.timeline__card img { border-radius: var(--radius-sm); margin-bottom: var(--s3); }
.timeline__card h2 { font-size: 1.35rem; margin-bottom: var(--s2); }
.timeline__text { color: var(--ink-2); font-size: var(--fs-sm); }
@media (max-width: 760px) {
	.timeline::before { left: 8px; }
	.timeline__item { grid-template-columns: 1fr; gap: var(--s2); padding-left: var(--s6); }
	.timeline__item::before { left: 8px; }
	.timeline__year, .timeline__item:nth-child(even) .timeline__year { text-align: left; order: 0; }
	.timeline__item:nth-child(even) .timeline__card { order: 1; }
}

.credits-grid { list-style: none; margin: var(--s5) 0 var(--section); padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: var(--s4); }
.credits-grid li { display: grid; grid-template-columns: 96px 1fr; gap: var(--s3); align-items: start; background: var(--white); padding: var(--s3); border-radius: var(--radius-sm); box-shadow: var(--shadow-1); font-size: var(--fs-sm); }
.credits-grid img { width: 96px; height: 96px; object-fit: cover; border-radius: 6px; }
.credits-grid p { margin: var(--s1) 0 0; }

.notfound { padding-block: var(--section); text-align: center; }
.notfound__in { max-width: 640px; }
.notfound__code { font-family: var(--f-display); font-size: clamp(6rem, 20vw, 11rem); line-height: 1; color: var(--gold); margin: 0; }
.search-big { max-width: 640px; margin: var(--s5) 0; }
.notfound .search-big { margin-inline: auto; }

/* ---------- Footer ---------- */
.site-footer { background: var(--forest-950); color: rgba(244, 236, 220, .78); padding-bottom: var(--s5); font-size: var(--fs-sm); }
.ornament--footer { color: var(--gold); opacity: .45; }
.site-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1.2fr 1fr; gap: var(--s6); padding-block: var(--s8) var(--s6); }
@media (max-width: 960px) { .site-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .site-footer__grid { grid-template-columns: 1fr; } }
.site-footer .brand { color: var(--ivory); margin-bottom: var(--s4); }
.site-footer .brand__name { color: var(--ivory); }
.site-footer .brand__tag { color: var(--sage-300); }
.site-footer h2 { font-family: var(--f-ui); font-size: var(--fs-sm); font-weight: 700; color: var(--gold-2); margin-bottom: var(--s3); }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin-bottom: var(--s2); }
.site-footer a { color: var(--parchment); text-decoration: none; }
.site-footer a:hover { color: var(--gold-2); }
.site-footer__lead a { font-weight: 600; }
.social { display: flex; flex-wrap: wrap; gap: var(--s3); }
.site-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .1); padding-top: var(--s4); font-size: var(--fs-xs); color: rgba(244, 236, 220, .55); }

/* ---------- Motion ---------- */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .8s var(--ease), transform .8s var(--ease); transition-delay: calc(var(--i, 0) * 60ms); }
.reveal.is-in { opacity: 1; transform: none; }
.no-js .reveal { opacity: 1; transform: none; }

/* WordPress alignment helpers */
.alignwide { margin-inline: calc(-1 * clamp(0rem, 8vw, 8rem)); max-width: none; }
.alignfull { margin-inline: calc(50% - 50vw); max-width: 100vw; }
.aligncenter { margin-inline: auto; }
@media print { .site-header, .topbar, .site-footer, .share, .newsletter, .related, .toc { display: none !important; } body { background: #fff; } }

/* Photo galleries */
.gallery-block { margin-top: var(--s6); }
.photo-grid { list-style: none; margin: 0; padding: 0; columns: 3 260px; column-gap: var(--s4); }
.photo-grid li { break-inside: avoid; margin-bottom: var(--s4); }
.photo-grid figure { margin: 0; }
.photo-grid img { width: 100%; height: auto; border-radius: var(--radius-sm); transition: transform .5s var(--ease), box-shadow .5s; }
.photo-grid a:hover img { transform: scale(1.02); box-shadow: var(--shadow-2); }
.photo-grid figcaption { font-size: var(--fs-xs); color: var(--muted); padding-top: var(--s1); line-height: 1.5; }
.map-panel__photos { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s2); margin-bottom: var(--s4); }
.map-panel__photos figure { margin: 0; }
.map-panel__photos img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
.map-panel__photos figcaption { font-size: .75rem; line-height: 1.4; color: var(--ink-2); }
.map-panel__photos small { display: block; color: var(--muted); }
.lightbox { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; background: rgba(18, 26, 21, .92); padding: var(--s5); cursor: zoom-out; }
.lightbox img { max-height: 86vh; width: auto; border-radius: var(--radius-sm); }
.lightbox p { color: var(--parchment); text-align: center; font-size: var(--fs-sm); margin-top: var(--s3); }
