:root {
	--ink: #17141a;
	--ink-rgb: 23 20 26;
	--violet: #5a33d6;
	--violet-rgb: 90 51 214;
	--lavender: #ddd3f3;
	--light: #f6f0e8;
	--light-rgb: 246 240 232;
	--projection: #e3ddd6;
	--amber: #ee9d48;
	--amber-rgb: 238 157 72;
	--amber-soft: #f7cd92;
	--bg: var(--ink);
	--fg: var(--light);
	--gutter: clamp(20px, 5vw, 80px);
	--gap: clamp(16px, 2vw, 32px);
	--ease: cubic-bezier(.16, 1, .3, 1);
	--r-photo: 28px;
	--r-panel: 20px;
	--header-h: 76px;
	--display: clamp(4.25rem, 16.5vw, 18.5rem);
	--section: clamp(2.75rem, 7.4vw, 7.5rem);
}

html {
	background: var(--bg);
	color: var(--fg);
	scroll-behavior: smooth;
	scroll-padding-top: var(--header-h);
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: transparent;
	color: inherit;
	font-family: Bricolage, ui-sans-serif, system-ui, sans-serif;
	font-optical-sizing: auto;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}

::selection { background: var(--amber-soft); color: var(--ink); }

img { max-width: 100%; height: auto; display: block; }

a { color: inherit; text-underline-offset: .18em; text-decoration-thickness: .08em; }

:where(a, button, [role="button"], input, summary):focus-visible {
	outline: 3px solid var(--amber);
	outline-offset: 4px;
	border-radius: 6px;
}

.wp-site-blocks { padding: 0; }
.home-content > * { margin-block: 0; }
:where(.scene, .site-header, .site-footer) .is-layout-flow > * { margin-block: 0; }
.wp-site-blocks > * + *, .home-content > * + * { margin-block-start: 0; }

.screen-reader-text, .sr-only {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}

.skip-link.screen-reader-text:focus {
	clip: auto; width: auto; height: auto; margin: 0;
	top: 12px; left: 12px; z-index: 100000;
	padding: 12px 18px; background: var(--light); color: var(--ink);
	font-weight: 700; border-radius: 999px; white-space: normal;
}

h1, h2, h3, p { margin: 0; }

.tube {
	display: inline-block;
	width: 4px; height: 1.05em;
	margin-right: .55em;
	vertical-align: -.16em;
	border-radius: 4px;
	background: linear-gradient(var(--light), var(--amber));
	box-shadow: 0 0 10px rgb(var(--amber-rgb) / .75), 0 0 22px rgb(var(--violet-rgb) / .45);
}

/* buttons */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.wp-block-button { margin: 0; }
.wp-block-button .wp-block-button__link {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 52px;
	padding: .9em 1.55em;
	border-radius: 999px;
	font: 700 1.0625rem/1.1 Bricolage, ui-sans-serif, system-ui, sans-serif;
	font-stretch: 92%;
	letter-spacing: -.005em;
	text-decoration: none;
	transition: color .45s var(--ease), border-color .45s var(--ease), transform .45s var(--ease);
}
.wp-block-button.is-small .wp-block-button__link { min-height: 44px; padding: .7em 1.2em; font-size: .975rem; }
.wp-block-button .wp-block-button__link::before {
	content: "";
	position: absolute; inset: 0;
	z-index: -1;
	transform: translateX(-101%);
	transition: transform .55s var(--ease);
}
.wp-block-button .wp-block-button__link::after {
	content: "";
	position: absolute; top: -20%; bottom: -20%; left: 0;
	width: 3px;
	background: var(--light);
	box-shadow: 0 0 12px var(--light), 0 0 26px var(--amber);
	opacity: 0;
	transform: translateX(-8px);
}
.wp-block-button .wp-block-button__link:hover::before,
.wp-block-button .wp-block-button__link:focus-visible::before { transform: translateX(0); }
.wp-block-button .wp-block-button__link:hover::after { animation: sweep .6s var(--ease); }
.wp-block-button .wp-block-button__link:active { transform: scale(.97); }

.wp-block-button.is-primary .wp-block-button__link { background: var(--amber); color: var(--ink); }
.wp-block-button.is-primary .wp-block-button__link::before { background: var(--light); }
.wp-block-button.is-primary .wp-block-button__link:focus-visible { outline-color: var(--light); }
.wp-block-button.is-ghost .wp-block-button__link { background: transparent; color: currentColor; box-shadow: inset 0 0 0 2px currentColor; }
.wp-block-button.is-ghost .wp-block-button__link::before { background: var(--fg); }
.wp-block-button.is-ghost .wp-block-button__link:hover,
.wp-block-button.is-ghost .wp-block-button__link:focus-visible { color: var(--bg); }

@keyframes sweep {
	0% { opacity: 0; transform: translateX(-8px); }
	15% { opacity: 1; }
	100% { opacity: 0; transform: translateX(var(--btn-w, 260px)); }
}

/* header */
.site-header {
	position: fixed; inset: 0 0 auto 0;
	z-index: 60;
	color: var(--fg);
	transition: transform .5s var(--ease), background-color .4s var(--ease), color .4s var(--ease);
}
.site-header.is-hidden { transform: translateY(-110%); }
.site-header.is-solid { background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.site-header__inner {
	display: flex; align-items: center; gap: clamp(12px, 2vw, 28px);
	min-height: var(--header-h);
	padding: 10px var(--gutter);
}
.brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; margin-right: auto; }
.brand__emblem { width: 58px; height: auto; }
.brand__text { font-weight: 800; font-stretch: 75%; font-size: 1.5rem; letter-spacing: -.02em; line-height: 1; }
.brand__text b { color: var(--amber); font-weight: 800; }
.site-nav .wp-block-navigation__container { gap: clamp(14px, 2vw, 30px); }
.site-nav .wp-block-navigation-item__content {
	font-weight: 600; font-size: 1.0625rem; text-decoration: none;
	padding: 8px 0;
	background: linear-gradient(var(--amber), var(--amber)) 0 100% / 0 2px no-repeat;
	transition: background-size .45s var(--ease);
}
.site-nav .wp-block-navigation-item__content:hover,
.site-nav .wp-block-navigation-item__content[aria-current="true"] { background-size: 100% 2px; }
.site-nav .wp-block-navigation__responsive-container-open,
.site-nav .wp-block-navigation__responsive-container-close { width: 44px; height: 44px; align-items: center; justify-content: center; border-radius: 999px; }
.site-nav .wp-block-navigation__responsive-container-open svg { width: 30px; height: 30px; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--violet) !important; color: var(--light) !important;
	padding: calc(var(--header-h) + 16px) var(--gutter) 40px;
}
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: clamp(2.6rem, 12vw, 4.5rem); font-weight: 800; font-stretch: 75%; line-height: 1; padding: 6px 0;
}
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 14px; }
.site-header__cta .wp-block-button__link::before { background: var(--light); }

/* scenes: static colors (no motion, no JS) */
.scene { position: relative; color: var(--scene-fg); background: var(--scene-bg); }
.scene-hero { --scene-bg: var(--violet); --scene-fg: var(--light); }
.scene-worship { --scene-bg: var(--violet); --scene-fg: var(--light); }
.scene-grow { --scene-bg: var(--lavender); --scene-fg: var(--ink); }
.scene-community { --scene-bg: var(--light); --scene-fg: var(--ink); }
.scene-youth { --scene-bg: var(--violet); --scene-fg: var(--light); }
.scene-pastor { --scene-bg: var(--ink); --scene-fg: var(--light); }
.scene-family { --scene-bg: var(--ink); --scene-fg: var(--light); }
.scene-visit { --scene-bg: var(--amber); --scene-fg: var(--ink); }
.scene-join { --scene-bg: var(--violet); --scene-fg: var(--light); }
.js-motion .scene { background: transparent; color: var(--fg); }
.js-motion .scene-visit, .js-motion .scene-grow, .js-motion .scene-community { color: var(--fg); }

.wp-block-image { margin: 0; }
.wp-block-image img { border-radius: 0; }

/* the light wipe: one variable --e (0 to 1) drives the clip edge and the beam */
.is-wipe { --e: 1; --beam: 0; position: relative; container-type: inline-size; }
.is-wipe > img, .is-wipe > .wipe-target { clip-path: inset(0 calc((1 - var(--e)) * 100%) 0 0 round var(--wipe-r, 0px)); }
.is-wipe::after {
	content: "";
	position: absolute; top: -4%; bottom: -4%; left: 0;
	width: 6px; margin-left: -3px;
	border-radius: 8px;
	background: linear-gradient(var(--light), color-mix(in srgb, var(--light), var(--amber-soft) 45%) 45%, var(--amber-soft));
	box-shadow: 0 0 10px 2px rgb(var(--light-rgb) / .9), 0 0 34px 8px rgb(var(--amber-rgb) / .55), 0 0 110px 34px rgb(var(--amber-rgb) / .22);
	transform: translateX(calc(var(--e) * 100cqw));
	opacity: var(--beam);
	pointer-events: none;
	z-index: 3;
	animation: breathe 4s ease-in-out infinite;
}
@keyframes breathe { 50% { filter: brightness(1.35); } }

/* 01 hero */
.hero__stage {
	display: grid;
	grid-template-areas: "hero" "welcome";
	grid-template-rows: 100svh auto;
	background: var(--ink);
	overflow: clip;
}
.hero__media { grid-area: hero; position: relative; overflow: hidden; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 56% 38%; }
.hero__stage::before {
	content: "";
	grid-area: hero;
	z-index: 1;
	background:
		linear-gradient(180deg, rgb(var(--ink-rgb) / .55) 0%, rgb(var(--ink-rgb) / 0) 22%),
		linear-gradient(12deg, rgb(var(--ink-rgb) / .92) 8%, rgb(var(--ink-rgb) / .45) 42%, rgb(var(--ink-rgb) / 0) 70%);
	opacity: var(--scrim, 1);
	pointer-events: none;
}
.hero__copy {
	grid-area: hero; z-index: 2; align-self: end;
	padding: 0 var(--gutter) clamp(28px, 6vh, 72px);
	color: var(--light);
	display: grid; gap: clamp(14px, 2.2vh, 24px);
}
.hero__kicker { font-weight: 650; font-size: clamp(1rem, 1.4vw, 1.25rem); letter-spacing: -.005em; text-wrap: balance; }
.hero__title {
	font-size: var(--display); font-weight: 800; font-stretch: 75%;
	line-height: .8; letter-spacing: -.018em; text-transform: uppercase;
	margin-left: -.04em;
}
.hero__service { font-size: clamp(1.15rem, 1.8vw, 1.6rem); font-weight: 600; text-wrap: balance; }
.hero__actions { margin-top: 6px; }
.hero__welcome {
	grid-area: welcome; z-index: 2;
	background: var(--violet); color: var(--light);
	padding: clamp(56px, 10vw, 140px) var(--gutter);
	display: grid; gap: 22px; align-content: center;
}
.welcome__title { font-size: clamp(2.1rem, 4.6vw, 4.6rem); font-weight: 760; font-stretch: 82%; line-height: .95; letter-spacing: -.03em; max-width: 14ch; }
.welcome__text { font-size: clamp(1.125rem, 1.4vw, 1.375rem); max-width: 38ch; line-height: 1.5; }
.welcome__lead { font-size: clamp(1.5rem, 2.4vw, 2.25rem); font-weight: 700; font-stretch: 88%; color: var(--light); }
.welcome__lead::before { content: ""; display: inline-block; width: 5px; height: .95em; margin-right: .5em; vertical-align: -.1em; border-radius: 4px; background: linear-gradient(var(--light), var(--amber)); box-shadow: 0 0 12px rgb(var(--amber-rgb) / .8); }
.hero__marker { position: absolute; top: 100svh; left: 0; width: 1px; }
.scene-hero .wp-block-spacer.hero__marker { margin: 0; }

.js-motion .scene-hero { height: 270svh; }
.js-motion .hero__stage {
	position: sticky; top: 0; height: 100svh;
	grid-template-areas: "hero"; grid-template-rows: 100svh;
}
.js-motion .hero__media { clip-path: inset(0 0 0 0 round 0px); will-change: clip-path; }
.js-motion .hero__media img { will-change: transform; }
.js-motion .hero__welcome {
	grid-area: hero; background: transparent;
	align-self: center; width: min(44vw, 640px);
	padding: 0 0 0 var(--gutter);
	visibility: hidden;
}
.js-motion .hero__marker { top: 118svh; }
.js-motion .hero__title { visibility: hidden; }
.js-motion.is-ready .hero__title { visibility: visible; }

/* split text */
.split-line { display: block; overflow: clip; padding-block: .06em .16em; margin-block: -.06em -.16em; }
.split-word { display: inline-block; white-space: nowrap; }
.split-char { display: inline-block; will-change: transform; }
.split-word.is-masked { overflow: clip; vertical-align: top; padding-block: .06em; margin-block: -.06em; }
.split-inner { display: inline-block; }

/* 02 worship */
.worship__stage {
	display: grid; gap: var(--gap);
	padding: clamp(80px, 12vw, 160px) var(--gutter);
}
.worship__pre { font-size: clamp(1.6rem, 3vw, 3rem); font-weight: 700; font-stretch: 85%; }
.worship__word {
	font-size: clamp(4rem, 21vw, 24rem); font-weight: 800; font-stretch: 75%;
	line-height: .8; letter-spacing: -.02em; text-transform: uppercase;
	margin-left: -.05em;
}
.worship__photo img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--r-photo); }
.worship__line { font-size: clamp(2rem, 5vw, 5rem); font-weight: 760; font-stretch: 80%; line-height: .95; letter-spacing: -.03em; text-wrap: balance; }
.worship__line.is-2 { font-size: clamp(3rem, 8.6vw, 9.5rem); font-weight: 800; font-stretch: 75%; line-height: .84; text-transform: uppercase; letter-spacing: -.018em; }
@font-face { font-family: "Anek Tamil"; src: url("../fonts/anek-tamil-worship.woff2") format("woff2"); font-weight: 100 800; font-stretch: 75% 125%; font-display: swap; unicode-range: U+0964-0965, U+0B82-0BFA, U+200C-200D, U+25CC; }
.worship__tamil { font-family: "Anek Tamil", Bricolage, sans-serif; font-weight: 800; font-stretch: 75%; font-size: clamp(2.6rem, 8.5vw, 9rem); line-height: 1.15; }
.worship__translation { font-size: clamp(1rem, 1.3vw, 1.25rem); font-weight: 700; letter-spacing: .02em; }
.worship__verse { margin: 0; padding: 0; border: 0; max-width: min(38ch, 100%); }
.worship__verse p { font-size: clamp(1.6rem, 3vw, 3rem); font-weight: 760; font-stretch: 84%; line-height: 1.04; letter-spacing: -.015em; text-wrap: balance; }
.worship__verse cite { display: block; margin-top: 12px; font-style: normal; font-weight: 650; font-size: 1rem; color: color-mix(in srgb, var(--ink) 70%, transparent); }
.worship__mask { display: none; }

.js-motion .worship__stage {
	position: relative; height: 100svh; padding: 0;
	display: block; overflow: clip;
	background: var(--violet);
}
.js-motion .worship__pre {
	position: absolute; left: 0; right: 0; top: calc(50% - .5 * clamp(4rem, 22vw, 26rem) - 1.6em);
	text-align: center; z-index: 4;
}
.js-motion .worship__word {
	position: absolute; left: 0; right: 0; top: 50%; translate: 0 -50%;
	text-align: center; margin: 0;
	font-size: clamp(4rem, 22vw, 26rem);
	color: transparent; z-index: 3;
}
.js-motion .worship__mask {
	display: block;
	position: absolute; left: 0; right: 0; top: 50%;
	margin-top: -.4em;
	text-align: center;
	font-size: clamp(4rem, 22vw, 26rem); font-weight: 800; font-stretch: 75%;
	line-height: .8; letter-spacing: -.02em; text-transform: uppercase;
	color: transparent;
	background-size: cover; background-position: 50% 64%;
	-webkit-background-clip: text; background-clip: text;
	z-index: 3; pointer-events: none;
	will-change: transform;
}
.js-motion .worship__photo { position: absolute; inset: 0; z-index: 1; }
.js-motion .worship__photo img { height: 100%; aspect-ratio: auto; border-radius: 0; }
.js-motion .worship__photo.is-1 { opacity: 0; will-change: transform; }
.js-motion .worship__photo img.worship__screen { position: absolute; display: block; max-width: none; aspect-ratio: auto; object-fit: fill; opacity: 0; pointer-events: none; }
.worship__screen { display: none; }
.js-motion .worship__screen { display: block; }
.js-motion .worship__tamil { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.js-motion .worship__tamil-en { position: absolute; left: 0; right: 0; top: 58%; z-index: 4; text-align: center; color: var(--ink); visibility: hidden; padding: 0 var(--gutter); display: grid; justify-items: center; gap: clamp(14px, 2vh, 24px); }
.worship__crisp { position: absolute; left: 0; right: 0; top: 42%; translate: 0 -50%; z-index: 4; text-align: center; white-space: nowrap; color: var(--ink); font-family: "Anek Tamil", sans-serif; font-weight: 700; font-stretch: 100%; line-height: 1.3; pointer-events: none; }
.worship__veil, .worship__marker, .worship__lyric { position: absolute; pointer-events: none; }
.worship__veil { background: var(--projection); }
.worship__marker {
	border-radius: 999px;
	background: linear-gradient(90deg, rgb(var(--amber-rgb) / 0), var(--amber-soft) 4%, var(--amber-soft) 96%, rgb(var(--amber-rgb) / 0));
	clip-path: inset(0 calc((1 - var(--k, 0)) * 100%) 0 0 round 999px);
}
.worship__lyric {
	background: linear-gradient(90deg, var(--ink) 0, var(--ink) calc(var(--k, 0) * 100% - 1.5%), var(--light) calc(var(--k, 0) * 100% + 1.5%), var(--light) 100%);
	-webkit-mask: var(--lyric) center / 100% 100% no-repeat;
	mask: var(--lyric) center / 100% 100% no-repeat;
}
.js-motion .worship__photo.is-3 { --e: 0; }
.js-motion .worship__stage::after {
	content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
	background: linear-gradient(0deg, rgb(var(--ink-rgb) / .9) 0%, rgb(var(--ink-rgb) / .45) 38%, rgb(var(--ink-rgb) / 0) 66%);
	opacity: var(--scrim, 0);
}
.js-motion .worship__line {
	position: absolute; left: var(--gutter); right: var(--gutter); bottom: clamp(32px, 9vh, 96px);
	max-width: min(22ch, 100%);
	z-index: 4; color: var(--light);
	visibility: hidden;
}

/* 03 grow and serve */
.scene-grow { padding: clamp(96px, 14vw, 200px) var(--gutter) clamp(80px, 10vw, 160px); }
.grow__beat { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); align-items: center; }
.grow__beat + .grow__beat { margin-top: clamp(96px, 14vw, 220px); }
.grow__title { font-size: var(--section); font-weight: 800; font-stretch: 76%; line-height: .84; letter-spacing: -.018em; text-transform: uppercase; }
.grow__line { margin-top: 22px; font-size: clamp(1.25rem, 1.9vw, 1.75rem); font-weight: 560; line-height: 1.3; max-width: 22ch; }
.grow__photo { overflow: clip; border-radius: var(--r-photo); }
.grow__photo img { width: 100%; object-fit: cover; }
.is-grow .grow__text { grid-column: 1 / span 5; }
.is-grow .grow__photo.is-main { grid-column: 6 / -1; }
.is-grow .grow__photo.is-main img { aspect-ratio: 5 / 4; object-position: 52% 50%; }
.is-serve .grow__photo.is-main { grid-column: 1 / span 7; grid-row: 1; }
.is-serve .grow__photo.is-main img { aspect-ratio: 4 / 3; object-position: 40% 60%; }
.is-serve .grow__photo.is-inset { grid-column: 6 / span 3; grid-row: 1; align-self: end; margin-bottom: -14%; z-index: 2; }
.is-serve .grow__photo.is-inset { box-shadow: 0 30px 60px -30px rgb(var(--ink-rgb) / calc(.55 * var(--e, 1))); }
.is-serve .grow__photo.is-inset img { aspect-ratio: 3 / 4; object-position: 50% 40%; }
.is-serve .grow__text { grid-column: 9 / -1; grid-row: 1; padding-left: clamp(0px, 2vw, 32px); }

/* 04 community */
.scene-community { padding: clamp(110px, 14vw, 200px) var(--gutter) clamp(120px, 16vw, 240px); overflow: clip; }
.community__title-wrap { position: relative; z-index: 3; text-align: center; }
.community__title { font-size: clamp(4.25rem, 15vw, 16rem); font-weight: 800; font-stretch: 75%; line-height: .82; letter-spacing: -.02em; text-transform: uppercase; }
.community__sub { margin-top: 10px; font-family: Bricolage, "Anek Tamil", sans-serif; font-size: clamp(2rem, 5.4vw, 5.6rem); font-weight: 760; font-stretch: 80%; letter-spacing: -.03em; line-height: 1; color: var(--violet); }
.community__collage {
	position: relative; margin-top: clamp(40px, 6vw, 80px);
	display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap);
	min-height: clamp(520px, 62vw, 980px);
}
.community__photo img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--r-photo); }
.community__photo.is-a { grid-column: 1 / span 5; grid-row: 1; align-self: start; }
.community__photo.is-a img { aspect-ratio: 4 / 3; }
.community__photo.is-b { grid-column: 6 / span 3; grid-row: 1; align-self: center; margin-top: 18%; }
.community__photo.is-b img { aspect-ratio: 3 / 4; object-position: 60% 30%; }
.community__photo.is-c { grid-column: 9 / span 4; grid-row: 1; align-self: start; margin-top: -6%; }
.community__photo.is-c img { aspect-ratio: 1 / 1; object-position: 42% 50%; }
.community__photo.is-d { grid-column: 3 / span 4; grid-row: 1; align-self: end; margin-bottom: -4%; }
.community__photo.is-d img { aspect-ratio: 3 / 2; object-position: 50% 45%; }
.js-motion .community__photo { will-change: transform; }

/* 05 pastor */
.scene-pastor {
	padding: clamp(110px, 14vw, 200px) var(--gutter);
	display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); align-items: start;
}
.pastor__media { grid-column: 1 / span 5; position: sticky; top: calc(var(--header-h) + 24px); }
.pastor__portrait { overflow: clip; border-radius: var(--r-photo); }
.pastor__portrait img { width: 100%; aspect-ratio: 798 / 1024; object-fit: cover; }
.pastor__copy { grid-column: 7 / -1; display: grid; gap: clamp(20px, 2.6vw, 34px); }
.pastor__label { font-weight: 650; font-size: 1.125rem; }
.pastor__label::before { content: ""; display: inline-block; width: 4px; height: 1.05em; margin-right: .55em; vertical-align: -.16em; border-radius: 4px; background: linear-gradient(var(--light), var(--amber)); box-shadow: 0 0 10px rgb(var(--amber-rgb) / .75); }
.pastor__name { font-size: clamp(2.6rem, 6vw, 6.4rem); font-weight: 800; font-stretch: 76%; line-height: .86; letter-spacing: -.018em; text-transform: uppercase; }
.pastor__quote { margin: 0; padding: 0; border: 0; }
.pastor__quote p { font-size: clamp(1.75rem, 3.3vw, 3.25rem); font-weight: 680; font-stretch: 86%; line-height: 1.08; letter-spacing: -.02em; color: var(--amber); text-wrap: balance; }
.pastor__bio { font-size: clamp(1.0625rem, 1.15vw, 1.1875rem); line-height: 1.6; max-width: 58ch; color: color-mix(in srgb, var(--light) 92%, var(--ink)); }

/* 06 family */
.scene-family { padding: clamp(96px, 12vw, 180px) 0 clamp(80px, 10vw, 140px); overflow: clip; }
.family__head { padding: 0 var(--gutter); display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.family__title { font-size: var(--section); font-weight: 800; font-stretch: 76%; line-height: .86; letter-spacing: -.018em; text-transform: uppercase; }
.family__count { font-weight: 700; font-stretch: 85%; font-size: clamp(1.25rem, 2vw, 2rem); font-variant-numeric: tabular-nums; white-space: nowrap; }
.family__count b { color: var(--amber); }
.wp-block-gallery.family__track {
	display: flex; flex-wrap: nowrap; align-items: center; gap: var(--gap);
	margin: clamp(36px, 5vw, 64px) 0 0;
	padding: 0 var(--gutter) 18px;
	overflow-x: auto; overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter);
	scrollbar-width: thin; scrollbar-color: var(--amber) transparent;
}
.wp-block-gallery.family__track.has-nested-images figure.wp-block-image {
	flex: 0 0 auto; width: auto !important; max-width: none;
	height: clamp(320px, 62vh, 720px);
	aspect-ratio: var(--ar, 3 / 2);
	margin: 0; scroll-snap-align: start;
	border-radius: var(--r-photo); overflow: hidden;
}
.wp-block-gallery.family__track.has-nested-images figure.wp-block-image img {
	width: 100% !important; height: 100% !important; max-width: none;
	object-fit: cover;
	transition: transform .8s var(--ease);
}
.wp-block-gallery.family__track figure.wp-block-image:hover img { transform: scale(1.04); }
.family__insta { padding: 28px var(--gutter) 0; font-size: 1.125rem; max-width: 60ch; }
.family__insta a { color: var(--amber); font-weight: 700; }
.js-motion .scene-family.is-pinned-track .wp-block-gallery.family__track { overflow: visible; scroll-snap-type: none; padding-bottom: 0; }
.wp-lightbox-overlay .scrim { background-color: var(--ink) !important; }

/* 07 visit */
.scene-visit { padding: clamp(110px, 13vw, 190px) var(--gutter) clamp(90px, 11vw, 160px); }
.visit__head { display: grid; grid-template-columns: max-content minmax(280px, 1fr); gap: 22px var(--gap); align-items: end; }
.visit__aside { display: grid; gap: 22px; justify-items: start; padding-bottom: .6vw; }
.visit__title { font-size: clamp(4.5rem, 12.5vw, 15rem); font-weight: 800; font-stretch: 75%; line-height: .8; letter-spacing: -.02em; text-transform: uppercase; margin-left: -.04em; }
.visit__intro { font-size: clamp(1.25rem, 1.8vw, 1.625rem); font-weight: 600; }
.visit__board {
	margin-top: clamp(40px, 6vw, 80px);
	display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: var(--gap);
}
.visit__item { border-top: 3px solid currentColor; padding-top: 18px; display: grid; align-content: start; gap: 10px; }
.visit__label { font-size: 1rem; font-weight: 750; letter-spacing: 0; }
.visit__label::before { content: ""; display: inline-block; width: 4px; height: 1em; margin-right: .5em; vertical-align: -.14em; border-radius: 4px; background: var(--ink); }
.visit__value { font-size: clamp(1.25rem, 1.7vw, 1.6rem); font-weight: 600; line-height: 1.28; }
.visit__note { font-size: 1.0625rem; }
.visit__actions { margin-top: 0; }
.scene-visit .wp-block-button.is-primary .wp-block-button__link { background: var(--ink); color: var(--light); }
.scene-visit .wp-block-button.is-primary .wp-block-button__link::before { background: var(--violet); }
.scene-visit .wp-block-button.is-ghost .wp-block-button__link { color: var(--ink); }
.scene-visit .wp-block-button.is-ghost .wp-block-button__link::before { background: var(--ink); }
.scene-visit .wp-block-button.is-ghost .wp-block-button__link:hover,
.scene-visit .wp-block-button.is-ghost .wp-block-button__link:focus-visible { color: var(--light); }
.scene-visit :focus-visible { outline-color: var(--ink); }
.copy-status { min-height: 1.5em; margin-top: 12px; font-weight: 650; }

/* 08 join */
.scene-join { padding: clamp(40px, 6vw, 80px) var(--gutter) clamp(80px, 10vw, 140px); }
.join__stage { position: relative; display: grid; min-height: min(92svh, 980px); place-items: center; text-align: center; }
.join__photo { position: absolute; inset: 0; border-radius: var(--r-photo); overflow: hidden; }
.join__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; }
.join__stage::before { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: var(--r-photo); background: linear-gradient(180deg, rgb(var(--ink-rgb) / .25), rgb(var(--ink-rgb) / .72)); pointer-events: none; }
.join__title { position: relative; z-index: 2; font-size: clamp(4rem, 13.5vw, 15rem); font-weight: 800; font-stretch: 75%; line-height: .82; letter-spacing: -.02em; text-transform: uppercase; color: var(--light); padding: 0 12px; }
.join__actions { position: relative; z-index: 2; justify-content: center; margin-top: -10vh; }
.js-motion .join__photo { clip-path: inset(0 0 0 0 round var(--r-photo)); will-change: clip-path; }

/* footer */
.site-footer { background: var(--ink); color: var(--light); position: relative; z-index: 1; }
.site-footer__inner { padding: clamp(48px, 5vw, 80px) var(--gutter) 40px; display: grid; gap: clamp(40px, 6vw, 80px); }
.footer__brand { display: flex; align-items: center; gap: clamp(16px, 3vw, 40px); flex-wrap: wrap; }
.footer__emblem { width: clamp(84px, 9vw, 132px); }
.footer__script { width: min(560px, 70vw); }
.footer__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gap); }
.footer__label { font-size: 1rem; font-weight: 750; letter-spacing: 0; line-height: 1.2; margin-bottom: 10px; color: var(--amber); }
.footer__col p { font-size: 1.0625rem; line-height: 1.7; }
.footer__col a { text-decoration-color: color-mix(in srgb, currentColor 40%, transparent); }
.footer__col a:hover { text-decoration-color: var(--amber); }
.footer__legal { font-size: .9375rem; opacity: .8; border-top: 1px solid color-mix(in srgb, var(--light) 22%, transparent); padding-top: 22px; }

/* mobile quick bar */
.quickbar { display: none; }

/* plain pages and 404 */
.site-main.is-plain { padding: calc(var(--header-h) + 60px) var(--gutter) 100px; min-height: 60vh; }
.plain__title { font-size: var(--section); font-weight: 800; font-stretch: 76%; text-transform: uppercase; line-height: .88; }
.site-main.is-404 { min-height: 100svh; padding: calc(var(--header-h) + 8vh) var(--gutter) 12vh; display: grid; align-content: center; gap: 26px; background: var(--violet); }
.lost__title { font-size: clamp(4rem, 14vw, 14rem); font-weight: 800; font-stretch: 75%; line-height: .82; letter-spacing: -.02em; text-transform: uppercase; }
.lost__text { font-size: clamp(1.25rem, 2vw, 1.75rem); font-weight: 560; max-width: 30ch; }

@media (max-width: 1080px) {
	.visit__board { grid-template-columns: 1fr 1fr; }
	.footer__cols { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
	:root { --header-h: 64px; }
	.brand__emblem { width: 46px; }
	.brand__text { font-size: 1.25rem; }
	.site-header .wp-block-buttons.site-header__cta { display: none; }
	.hero__media img { object-position: 60% 40%; }
	.hero__title { font-size: clamp(4.25rem, 24vw, 8rem); }
	.hero__actions .wp-block-button { flex: 1 1 100%; }
	.hero__actions .wp-block-button__link { width: 100%; }
	.js-motion .scene-hero { height: 220svh; }
	.js-motion .hero__welcome { align-self: start; width: auto; padding: calc(var(--header-h) + 22px) var(--gutter) 0; gap: 14px; }
	.js-motion .hero__welcome .welcome__title { font-size: clamp(1.9rem, 8.4vw, 2.6rem); }
	.js-motion .hero__welcome .welcome__text { font-size: 1.0625rem; }
	.js-motion .hero__welcome .welcome__lead { font-size: 1.375rem; }
	.js-motion .hero__marker { top: 100svh; }
	.js-motion .worship__word, .js-motion .worship__mask { font-size: 26vw; }
	.js-motion .worship__line { bottom: calc(108px + env(safe-area-inset-bottom)); }
	.js-motion .worship__pre { top: calc(50% - 13vw - 1.9em); }
	.grow__beat { grid-template-columns: 1fr; row-gap: 28px; }
	.is-grow .grow__text, .is-grow .grow__photo.is-main, .is-serve .grow__photo.is-main, .is-serve .grow__text { grid-column: 1; grid-row: auto; }
	.is-serve .grow__photo.is-main { grid-row: 1; }
	.is-serve .grow__photo.is-inset { grid-column: 1; grid-row: 1; justify-self: end; width: 42%; margin: 0 -4px -18% 0; }
	.is-serve .grow__text { grid-row: 2; margin-top: 18%; padding-left: 0; }
	.community__collage { grid-template-columns: 1fr 1fr; gap: 14px; min-height: 0; }
	.community__photo.is-a { grid-column: 1 / -1; grid-row: auto; }
	.community__photo.is-b { grid-column: 1; grid-row: auto; margin-top: 0; }
	.community__photo.is-c { grid-column: 2; grid-row: auto; margin-top: 22%; }
	.community__photo.is-d { grid-column: 1 / -1; grid-row: auto; margin: 0; }
	.scene-pastor { grid-template-columns: 1fr; row-gap: 34px; }
	.pastor__media { grid-column: 1; position: relative; top: 0; width: 86%; }
	.pastor__copy { grid-column: 1; }
	.family__head { flex-direction: column; align-items: start; }
	.wp-block-gallery.family__track.has-nested-images figure.wp-block-image { height: 56svh; max-width: 86vw; }
	.wp-block-gallery.family__track.has-nested-images figure.wp-block-image.is-wide { height: calc(86vw * 9 / 16); width: 86vw !important; min-height: 0; }
	.visit__board { grid-template-columns: 1fr; gap: 26px; }
	.visit__head { grid-template-columns: 1fr; }
	.visit__actions .wp-block-button { flex: 1 1 100%; }
	.visit__actions .wp-block-button__link { width: 100%; }
	.join__stage { min-height: 82svh; }
	.join__actions { margin-top: 0; flex-direction: column; align-items: stretch; width: 100%; padding: 0 18px; }
	.footer__cols { grid-template-columns: 1fr; gap: 30px; }
	.quickbar {
		position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom));
		z-index: 55;
		display: flex; align-items: center; justify-content: space-between; gap: 12px;
		padding: 8px 8px 8px 18px;
		border-radius: 999px;
		background: var(--ink); color: var(--light);
		box-shadow: 0 18px 40px -18px rgb(var(--ink-rgb) / .7), inset 0 0 0 1px rgb(var(--light-rgb) / .14);
		transition: transform .5s var(--ease), opacity .5s var(--ease);
	}
	.quickbar__text { font-size: .975rem; line-height: 1.2; }
	.quickbar__text b { color: var(--amber); margin-right: .35em; }
	.quickbar__cta { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px; background: var(--amber); color: var(--ink); font-weight: 750; text-decoration: none; white-space: nowrap; }
	.js .quickbar { transform: translateY(160%); opacity: 0; }
	.js .quickbar.is-on { transform: none; opacity: 1; }
	.site-footer__inner { padding-bottom: 110px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
	.is-wipe::after { display: none; }
}

.wipe-target { display: grid; gap: inherit; align-content: inherit; }

@media (min-width: 761px) {
	.scene-community { min-height: 140vh; display: grid; place-items: center; padding-block: 18vh; }
	.community__title-wrap { grid-area: 1 / 1; z-index: 3; }
	.community__collage { grid-area: 1 / 1; position: absolute; inset: 6vh var(--gutter); display: block; margin: 0; min-height: 0; }
	.community__photo { position: absolute; margin: 0 !important; }
	.community__photo.is-a { left: 0; top: 4%; width: 38%; }
	.community__photo.is-b { right: 3%; top: 0; width: 23%; }
	.community__photo.is-c { left: 10%; bottom: 2%; width: 25%; }
	.community__photo.is-d { right: 0; bottom: 9%; width: 36%; }
	.community__title { text-shadow: 0 0 1px var(--light); }
}

.js-motion .scene-family.is-pinned-track {
	height: 100svh; box-sizing: border-box;
	padding: calc(var(--header-h) + 2vh) 0 4vh;
	display: flex; flex-direction: column; justify-content: center;
}
.js-motion .scene-family.is-pinned-track .family__title { font-size: clamp(2.6rem, 6vw, 6.2rem); }
.js-motion .scene-family.is-pinned-track .wp-block-gallery.family__track { margin-top: 3.5vh; }
.js-motion .scene-family.is-pinned-track .wp-block-gallery.family__track.has-nested-images figure.wp-block-image { height: 54vh; }
.js-motion .scene-family.is-pinned-track .family__insta { padding-top: 3vh; }

@media (max-width: 760px) {
	.scene-visit { display: flex; flex-direction: column; }
	.visit__head, .visit__aside { display: contents; }
	.visit__title { order: 1; font-size: 21vw; }
	.visit__intro { order: 2; margin-top: 18px; }
	.visit__board { order: 3; margin-top: 28px; }
	.visit__actions { order: 4; margin-top: 32px; }
	.copy-status { order: 5; }
	.grow__title, .family__title { font-size: clamp(3.2rem, 15vw, 4.6rem); }
	.pastor__name { font-size: clamp(2.6rem, 12vw, 3.6rem); }
}

.family__track .lightbox-trigger { width: 44px !important; height: 44px !important; border-radius: 999px !important; background: var(--ink) !important; color: var(--light) !important; }
.family__track .lightbox-trigger:focus, .family__track .lightbox-trigger:focus-visible { opacity: 1 !important; outline: 3px solid var(--amber); outline-offset: 3px; }

.admin-bar .site-header { top: var(--wp-admin--admin-bar--height, 32px); }
.admin-bar .js-motion .hero__stage, .js-motion.admin-bar .hero__stage { top: 0; }

.hero__kicker, .hero__service { text-shadow: 0 1px 2px rgb(var(--ink-rgb) / .55), 0 0 22px rgb(var(--ink-rgb) / .7); }
.hero__media img { object-position: 62% 38%; }
.site-header:not(.is-solid) .site-nav .wp-block-navigation-item__content, .site-header:not(.is-solid) .brand__text { text-shadow: 0 1px 12px rgb(var(--ink-rgb) / .55); }

@media (max-width: 760px) {
	.js-motion .worship__tamil-en { top: 55%; }
}

.ta, [lang="ta"] { font-family: "Anek Tamil", sans-serif; font-stretch: 100%; font-weight: 700; letter-spacing: 0; }

@media (max-width: 760px) {
	.js-motion .worship__photo.is-3 img { object-position: 74% 40%; }
}


.hero__stage::after {
	content: ""; grid-area: hero; z-index: 1; pointer-events: none;
	background: rgb(var(--ink-rgb) / .22);
	opacity: var(--scrim, 1);
}
.hero__title { text-shadow: 0 2px 40px rgb(var(--ink-rgb) / .45); }

.community__title { -webkit-text-stroke: .07em var(--light); paint-order: stroke fill; text-shadow: none; }
@media (min-width: 761px) {
	.community__photo.is-a { top: 0; width: 34%; }
	.community__photo.is-b { top: 0; width: 20%; }
	.community__photo.is-c { bottom: 0; width: 22%; }
	.community__photo.is-d { bottom: 4%; width: 32%; }
}


/* youth */
.scene-youth {
	padding: clamp(110px, 13vw, 190px) var(--gutter);
	display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); align-items: center;
}
.youth__text { grid-column: 1 / span 5; grid-row: 1; display: grid; gap: clamp(16px, 2vw, 26px); position: relative; z-index: 2; }
.youth__kicker { font-weight: 650; font-size: 1.0625rem; }
.youth__kicker::before { content: ""; display: inline-block; width: 4px; height: 1.05em; margin-right: .55em; vertical-align: -.16em; border-radius: 4px; background: linear-gradient(var(--light), var(--amber-soft)); }
.youth__title { font-size: clamp(4rem, 10.5vw, 12rem); font-weight: 800; font-stretch: 75%; line-height: .82; letter-spacing: -.02em; text-transform: uppercase; }
.youth__line { font-size: clamp(1.25rem, 1.9vw, 1.75rem); font-weight: 560; line-height: 1.3; max-width: 24ch; }
.youth__note { font-size: 1.0625rem; }
.youth__note a { color: var(--amber-soft); font-weight: 700; }
.youth__photo { overflow: clip; border-radius: var(--r-photo); }
.youth__photo img { width: 100%; object-fit: cover; }
.youth__photo.is-main { grid-column: 6 / span 6; grid-row: 1; }
.youth__photo.is-main img { aspect-ratio: 4 / 3; object-position: 50% 40%; }
.youth__photo.is-inset { grid-column: 10 / span 3; grid-row: 1; align-self: end; margin-bottom: -16%; margin-right: -3%; z-index: 3; box-shadow: 0 30px 60px -30px rgb(var(--ink-rgb) / calc(.6 * var(--e, 1))); }
.youth__photo.is-inset img { aspect-ratio: 3 / 4; object-position: 45% 40%; }
@media (max-width: 760px) {
	.scene-youth { grid-template-columns: 1fr; row-gap: 30px; }
	.youth__text, .youth__photo.is-main { grid-column: 1; grid-row: auto; }
	.youth__photo.is-inset { grid-column: 1; grid-row: 2; justify-self: end; width: 44%; margin: 0 -4px -16% 0; }
	.youth__photo.is-main { grid-row: 2; }
	.youth__title { font-size: clamp(3.4rem, 17vw, 5rem); }
}
