/* ==========================================================================
   BGSG — Black Girl Support Group
   Minimalist. Editorial. Monochromatic. Modern. Bold. Cultural.
   ========================================================================== */

/* Tokens ------------------------------------------------------------------ */
:root {
	--black: #000;
	--white: #fff;
	--paper: #f6f4ef;
	--font: "Inter Tight", "Helvetica Neue", Helvetica, Arial, sans-serif;
	--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

	--pad: 42px;
	--header-h: 76px;
	--admin-offset: 0px;

	--fs-hero: clamp(44px, 7.4vw, 184px);
	--fs-title: clamp(40px, 5.4vw, 124px);
	--fs-statement: clamp(40px, 6.6vw, 160px);
	--fs-body: 18px;

	--ease-out: cubic-bezier(.16, .84, .3, 1);
	--ease-in-out: cubic-bezier(.7, 0, .2, 1);

	/* Surface defaults (dark). Sections override. */
	--bg: var(--black);
	--fg: var(--white);
	--muted: #9d9d9d;
	--line: rgba(255, 255, 255, .28);
}

@media (max-width: 768px) {
	:root {
		--pad: 18px;
		--header-h: 60px;
		--fs-hero: clamp(40px, 13vw, 96px);
		--fs-title: clamp(36px, 11vw, 72px);
		--fs-statement: clamp(36px, 11.5vw, 84px);
		--fs-body: 16px;
	}
}

.admin-bar { --admin-offset: 32px; }
@media (max-width: 782px) { .admin-bar { --admin-offset: 46px; } }
@media (max-width: 600px) { .admin-bar { --admin-offset: 0px; } }

/* Base -------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--header-h) + var(--admin-offset));
}

body {
	margin: 0;
	background: var(--black);
	color: var(--white);
	font-family: var(--font);
	font-size: var(--fs-body);
	line-height: 1.5;
	letter-spacing: -.005em;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

body.is-locked { overflow: hidden; }

img, video, canvas, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; border-radius: 0; }
h1, h2, h3, h4, h5, h6, p, figure, blockquote { margin: 0; font-size: inherit; font-weight: inherit; }
ul, ol { list-style: none; margin: 0; padding: 0; }
fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
legend { padding: 0; }
::selection { background: var(--fg); color: var(--bg); }

:focus { outline: none; }
:focus-visible { outline: 1px solid currentColor; outline-offset: 4px; }

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

.skip-link {
	position: fixed; top: 8px; left: 8px; z-index: 300;
	background: var(--white); color: var(--black);
	padding: 10px 16px; font-size: 13px; text-transform: uppercase;
	transform: translateY(-200%);
}
.skip-link:focus { transform: none; }

.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.wrap {
	width: 100%;
	max-width: 1920px;
	margin: 0 auto;
	padding-left: var(--pad);
	padding-right: var(--pad);
}

.mono {
	font-family: var(--mono);
	font-size: 11px;
	line-height: 1.4;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.u-link { border-bottom: 1px solid currentColor; }

/* Type scale -------------------------------------------------------------- */
.type-hero,
.type-title,
.type-statement {
	font-weight: 500;
	letter-spacing: -.045em;
	line-height: .9;
}
.type-hero { font-size: var(--fs-hero); }
.type-title { font-size: var(--fs-title); letter-spacing: -.04em; line-height: .92; }
.type-statement { font-size: var(--fs-statement); }

/* Page transition curtain ------------------------------------------------- */
.page-curtain {
	position: fixed; inset: 0; z-index: 250;
	background: var(--black);
	pointer-events: none;
	opacity: 0;
	transition: opacity .5s var(--ease-in-out);
}
.js .page-curtain { opacity: 1; }
.js.is-loaded .page-curtain { opacity: 0; }
.js.is-leaving .page-curtain { opacity: 1; transition-duration: .4s; }

/* Scroll reveal ----------------------------------------------------------- */
.js [data-reveal] {
	opacity: 0;
	transform: translateY(32px);
	transition: opacity .9s var(--ease-out), transform 1.1s var(--ease-out);
	transition-delay: var(--d, 0s);
}
.js [data-reveal].is-visible { opacity: 1; transform: none; }

/* Buttons ----------------------------------------------------------------- */
.btn-outline {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6em;
	border: 1px solid currentColor;
	padding: 10px 20px 9px;
	font-size: 13px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: .04em;
	text-transform: uppercase;
	white-space: nowrap;
	transition: background-color .25s ease, color .25s ease;
}
.btn-outline:hover { background: var(--fg); color: var(--bg); }
.btn-outline--lg { padding: 17px 30px 16px; font-size: 14px; }
.btn-outline[aria-busy="true"] { opacity: .5; pointer-events: none; }

.link-cta {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	padding: 4px 0;
	border-bottom: 1px solid transparent;
	transition: border-color .25s ease;
}
.link-cta > span[aria-hidden] { transition: transform .35s var(--ease-out); }
.link-cta:hover { border-bottom-color: currentColor; }
.link-cta:hover > span[aria-hidden] { transform: translateX(6px); }

/* Header ------------------------------------------------------------------ */
.site-header {
	--bg: var(--black); --fg: var(--white);
	position: sticky;
	top: var(--admin-offset);
	z-index: 60;
	height: var(--header-h);
	background: var(--black);
	color: var(--white);
}
.site-header__inner {
	height: 100%;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	padding: 0 var(--pad);
}
.menu-toggle {
	justify-self: start;
	display: inline-flex;
	align-items: center;
	gap: 14px;
	font-size: 15px;
	letter-spacing: .01em;
	text-transform: uppercase;
	padding: 8px 0;
}
.menu-toggle__label { line-height: 1; }
.menu-toggle:hover .menu-toggle__label { text-decoration: underline; text-underline-offset: 4px; }

.menu-icon { position: relative; width: 26px; height: 9px; flex: none; }
.menu-icon i {
	position: absolute; left: 0; right: 0; height: 1px;
	background: currentColor;
	transition: transform .45s var(--ease-in-out), top .45s var(--ease-in-out);
}
.menu-icon i:first-child { top: 0; }
.menu-icon i:last-child { top: 8px; }
.menu-icon.is-x i:first-child { top: 4px; transform: rotate(45deg); }
.menu-icon.is-x i:last-child { top: 4px; transform: rotate(-45deg); }

.site-header__logo { justify-self: center; display: block; }
.site-header__logo .logo-image { height: 26px; width: auto; }
.logo-image--full { height: auto; width: min(270px, 100%); }
.site-header__join { justify-self: end; }

/* Wordmark */
.logo { display: inline-block; font-weight: 700; text-transform: uppercase; line-height: .82; }
.logo--mark { font-size: 30px; letter-spacing: -.07em; padding-right: .07em; }
.logo--full { display: flex; flex-direction: column; font-size: 24px; letter-spacing: -.035em; line-height: .9; }
@media (max-width: 768px) {
	.logo--mark { font-size: 24px; }
	.site-header__logo .logo-image { height: 21px; }
	.site-header__join { padding: 8px 14px 7px; font-size: 12px; }
	.menu-toggle__label { font-size: 12px; }
}

/* Sidebar menu — A24 panel (500px, 74px items), in white with black type --- */
.site-menu {
	--bg: var(--white); --fg: var(--black);
	position: fixed;
	top: 0; left: 0; bottom: 0;
	z-index: 90;
	width: max-content;
	min-width: 500px;
	max-width: 100vw;
	display: flex;
	flex-direction: column;
	background: var(--white);
	color: var(--black);
	overflow-y: auto;
	overscroll-behavior: contain;
	transform: translateX(-101%);
	visibility: hidden;
	transition: transform .7s var(--ease-in-out), visibility 0s linear .7s;
}
.site-menu.is-open {
	transform: none;
	visibility: visible;
	transition: transform .7s var(--ease-in-out), visibility 0s;
}
.site-menu__top {
	flex: none;
	display: flex;
	align-items: center;
	height: var(--header-h);
	margin-top: var(--admin-offset);
	padding: 0 var(--pad);
}
.site-menu__nav { padding: 32px 42px 72px; }
.site-menu__list { display: flex; flex-direction: column; margin-top: -6px; }
.site-menu__link {
	display: inline-flex;
	align-items: flex-start;
	white-space: nowrap;
	font-size: 74px;
	font-weight: 500;
	line-height: .92;
	letter-spacing: -.04em;
	padding: 9px 0;
	opacity: 0;
	transform: translateY(28px);
	transition: opacity .45s ease, transform .7s var(--ease-out), color .2s ease;
}
.site-menu.is-open .site-menu__link {
	opacity: 1;
	transform: none;
	transition-delay: calc(.2s + var(--i) * .05s), calc(.2s + var(--i) * .05s), 0s;
}
.site-menu__link:hover,
.site-menu__link:focus-visible { color: #9a9a9a; }
.site-menu__ext { font-size: .3em; margin-left: .25em; margin-top: .25em; font-weight: 400; letter-spacing: 0; }
.site-menu__link[aria-disabled="true"] { cursor: default; }
@media (max-width: 1299px) {
	.site-menu__link { font-size: 38px; line-height: 1; letter-spacing: -.03em; }
}
@media (max-width: 1023px) {
	.site-menu__link { font-size: 48px; line-height: .92; letter-spacing: -.04em; }
}
@media (max-width: 359px) {
	.site-menu__link { font-size: 40px; }
}
@media (max-width: 639px) {
	.site-menu { width: 100vw; min-width: 0; }
	.site-menu__nav { padding: 24px 18px 72px; }
	.site-menu__link { white-space: normal; }
}

/* Clickable, but the page stays visible behind the panel (as on A24). */
.site-menu__scrim {
	position: fixed; inset: 0; z-index: 85;
	background: transparent;
	pointer-events: none;
}
.site-menu__scrim.is-visible { pointer-events: auto; }

/* Sections ---------------------------------------------------------------- */
.section { position: relative; background: var(--bg); color: var(--fg); }
.section--dark { --bg: var(--black); --fg: var(--white); --muted: #9d9d9d; --line: rgba(255, 255, 255, .28); }
.section--light { --bg: var(--white); --fg: var(--black); --muted: #6a6a6a; --line: rgba(0, 0, 0, .18); }
.section-pad { padding-top: clamp(80px, 9vw, 168px); padding-bottom: clamp(80px, 9vw, 168px); }

/* 01 Home */
.section-home {
	min-height: calc(100vh - var(--header-h) - var(--admin-offset));
	min-height: calc(100svh - var(--header-h) - var(--admin-offset));
	display: flex;
	align-items: flex-end;
	padding: clamp(80px, 10vw, 160px) 0 clamp(48px, 6vw, 96px);
}
.mask-line { display: block; overflow: hidden; padding-bottom: .06em; margin-bottom: -.06em; }
.mask-line > span { display: block; }
.js .mask-line > span { transform: translateY(108%); transition: transform 1.2s var(--ease-out); }
.js .mask-line + .mask-line > span { transition-delay: .12s; }
.js.is-loaded .mask-line > span { transform: none; }

.section-home__lede {
	margin-top: clamp(28px, 3vw, 52px);
	max-width: 31ch;
	font-size: clamp(20px, 2.05vw, 36px);
	line-height: 1.18;
	letter-spacing: -.02em;
}
.scroll-cue {
	position: absolute;
	right: var(--pad);
	bottom: clamp(48px, 6vw, 96px);
	width: 14px;
	animation: cue 2.6s var(--ease-in-out) infinite;
}
@keyframes cue { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(8px); } }
@media (max-width: 768px) { .scroll-cue { display: none; } }

/* 02 Mission — envelope
   Open = flap lifts, the letter slides up from inside the pocket (its lower part
   still tucked behind the pocket), then comes forward and settles on the envelope. */
.section-mission { padding-top: clamp(48px, 4.5vw, 88px); }
.section-mission .type-title { margin-bottom: clamp(16px, 2vw, 32px); }

.envelope-stage {
	--env-w: min(640px, 86vw);
	--env-h: calc(var(--env-w) * .62);
	--letter-h: 560px;                                                   /* measured by JS */
	--tf: calc(var(--env-h) * .76 - var(--letter-h));                    /* final letter offset */
	--tuck: calc(var(--letter-h) - var(--env-h) * .6 + var(--tf));       /* hidden strip while behind pocket */
	--rise: calc(max(var(--letter-h) - var(--env-h) * .76, var(--env-h) * .58) + 32px);
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
	padding-top: var(--rise);
	padding-bottom: 8px;
	overflow: hidden;
}
.envelope-hint {
	position: absolute;
	left: 0; right: 0;
	bottom: calc(var(--env-h) + 36px);
	text-align: center;
	color: var(--muted);
	transition: opacity .3s ease;
}
.hint-tap { display: none; }
.envelope-stage.is-open .envelope-hint { opacity: 0; }

.envelope {
	position: relative;
	width: var(--env-w);
	height: var(--env-h);
	perspective: 1600px;
	flex: none;
}
.envelope__back {
	position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(to bottom, #050505 0%, #0b0b0b 35%, #111 100%);
	box-shadow:
		0 30px 46px -22px rgba(0, 0, 0, .55),
		0 10px 18px -10px rgba(0, 0, 0, .35),
		0 1px 2px rgba(0, 0, 0, .3);
	border-radius: 2px;
}

.envelope__letter {
	position: absolute;
	top: 0;
	left: 6%; right: 6%;
	z-index: 2;
	background: var(--paper);
	color: var(--black);
	padding: clamp(24px, 3.4vw, 44px) clamp(22px, 3.4vw, 48px);
	font-size: var(--fs-body);
	line-height: 1.5;
	box-shadow: 0 1px 0 rgba(0, 0, 0, .06), 0 24px 50px -24px rgba(0, 0, 0, .5);
	transform: translateY(calc(var(--env-h) * .6));
	clip-path: inset(-60px -60px 100% -60px);
}
.envelope__letter p + p { margin-top: 1em; }
.envelope__letter-label { margin-bottom: 1.6em; color: #6a6a6a; }

.envelope-stage.is-open .envelope__letter { animation: letter-open 1s var(--ease-out) .26s both; }
.envelope-stage.was-open:not(.is-open) .envelope__letter { animation: letter-close .6s var(--ease-in-out) both; }

@keyframes letter-open {
	0%   { transform: translateY(calc(var(--env-h) * .6)); clip-path: inset(-60px -60px 100% -60px); z-index: 2; }
	60%  { transform: translateY(var(--tf)); clip-path: inset(-60px -60px var(--tuck) -60px); z-index: 2; }
	61%  { transform: translateY(var(--tf)); clip-path: inset(-60px -60px var(--tuck) -60px); z-index: 7; }
	100% { transform: translateY(var(--tf)); clip-path: inset(-60px -60px -80px -60px); z-index: 7; }
}
@keyframes letter-close {
	0%   { transform: translateY(var(--tf)); clip-path: inset(-60px -60px -80px -60px); z-index: 7; }
	35%  { transform: translateY(var(--tf)); clip-path: inset(-60px -60px var(--tuck) -60px); z-index: 7; }
	36%  { transform: translateY(var(--tf)); clip-path: inset(-60px -60px var(--tuck) -60px); z-index: 2; }
	100% { transform: translateY(calc(var(--env-h) * .6)); clip-path: inset(-60px -60px 100% -60px); z-index: 2; }
}

.envelope__pocket {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	width: 100%;
	height: 100%;
	z-index: 3;
	overflow: visible;
}
.envelope__fold { filter: drop-shadow(0 -1.5px 1.5px rgba(0, 0, 0, .7)); }
.envelope__flap {
	position: absolute;
	left: 0; top: 0;
	width: 100%;
	height: 58%;
	z-index: 4;
	transform-origin: 50% 0;
	filter: drop-shadow(0 3px 3px rgba(0, 0, 0, .65)) drop-shadow(0 8px 10px rgba(0, 0, 0, .35));
	transition: transform .45s var(--ease-in-out) .3s, z-index 0s linear .5s;
}
/* Matte paper grain over the whole envelope. */
.envelope__grain {
	position: absolute; inset: 0;
	z-index: 5;
	pointer-events: none;
	opacity: .5;
	mix-blend-mode: screen;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	transition: opacity .3s ease;
}
.envelope-stage.is-open .envelope__grain { opacity: .25; }
.envelope__seal {
	position: absolute;
	left: 50%; top: 40%;
	z-index: 5;
	transform: translate(-50%, -50%);
	font-size: clamp(15px, 2vw, 22px);
	font-weight: 700;
	letter-spacing: -.06em;
	line-height: 1;
	color: #0c0c0c;
	text-shadow: 0 1px 0 rgba(255, 255, 255, .09), 0 -1px 0 rgba(0, 0, 0, .9);
	transition: opacity .25s ease .5s;
}
/* Official logo pressed into the paper: the shape is cut from the logo file, the
   shadows on the wrapper give the light top / dark bottom edge of a deboss. */
.envelope__seal--logo {
	width: clamp(64px, calc(var(--env-w) * .14), 96px);
	aspect-ratio: 531 / 160;
	filter: drop-shadow(0 1px 0 rgba(255, 255, 255, .1)) drop-shadow(0 -1px 0 rgba(0, 0, 0, .85));
}
.envelope__seal--logo > span {
	display: block;
	width: 100%; height: 100%;
	background: #0d0d0d;
	-webkit-mask: var(--seal-logo) center / contain no-repeat;
	mask: var(--seal-logo) center / contain no-repeat;
}
.envelope__trigger { position: absolute; inset: 0; z-index: 6; cursor: pointer; }

.envelope-stage.is-open .envelope__flap {
	transform: rotateX(180deg);
	z-index: 1;
	transition: transform .45s var(--ease-in-out), z-index 0s linear .22s;
}
.envelope-stage.is-open .envelope__seal { opacity: 0; transition-delay: 0s; }
.envelope-stage.is-open .envelope__trigger { cursor: default; }

/* Touch: stage stays compact until tapped open. */
@media (hover: none), (pointer: coarse) {
	.hint-hover { display: none; }
	.hint-tap { display: inline; }
	.envelope-stage { padding-top: 72px; transition: padding-top .7s var(--ease-out); }
	.envelope-stage.is-open { padding-top: var(--rise); }
	.envelope-hint { bottom: auto; top: 24px; }
}
@media (max-width: 768px) {
	.envelope-stage { --env-w: 84vw; }
	.envelope__letter { left: -3%; right: -3%; }
}

/* 03 Founder */
.section-founder { padding: clamp(48px, 5vw, 96px) 0; }
.founder-panel {
	position: relative;
	display: grid;
	/* Wide, shallow banner: never taller than ~70% of the screen. */
	min-height: min(clamp(340px, 30vw, 580px), 70vh);
	background: var(--black);
	color: var(--white);
	overflow: hidden;
	isolation: isolate;
	cursor: default;
}
.founder-panel > * { grid-area: 1 / 1; }
.founder-panel:focus-within { outline: 1px solid rgba(255, 255, 255, .5); outline-offset: 6px; }

.founder-panel__media {
	position: relative;
	z-index: 1;
	background-color: #151515;
	background-size: cover;
	background-position: 50% 30%; /* overridden inline by the Customizer focus point */
	transition: opacity .9s var(--ease-out), transform 1.4s var(--ease-out), filter .9s var(--ease-out);
}
.founder-panel__media::after {
	content: "";
	position: absolute; inset: 0;
	background:
		linear-gradient(to top, rgba(0, 0, 0, .78) 0%, rgba(0, 0, 0, 0) 55%),
		linear-gradient(to right, rgba(0, 0, 0, .45) 0%, rgba(0, 0, 0, 0) 45%);
}
.founder-panel__media.is-placeholder {
	background-image:
		radial-gradient(120% 90% at 70% 35%, #3a3a3a 0%, #1b1b1b 45%, #0a0a0a 100%);
}

.founder-panel__caption {
	position: relative;
	z-index: 2;
	align-self: end;
	padding: clamp(20px, 2.4vw, 40px);
	transition: opacity .5s ease, transform .8s var(--ease-out);
}
.founder-panel__eyebrow {
	font-size: 11px;
	letter-spacing: .06em;
	text-transform: uppercase;
	margin-bottom: 4px;
	opacity: .85;
}
.founder-panel__name {
	font-size: clamp(34px, 4.4vw, 84px);
	font-weight: 500;
	line-height: .95;
	letter-spacing: -.04em;
}

.founder-panel__bio {
	position: relative;
	z-index: 3;
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
	gap: clamp(24px, 4vw, 80px);
	align-content: center;
	padding: clamp(28px, 3.2vw, 56px) clamp(28px, 4vw, 72px);
	visibility: hidden;
	transition: visibility 0s linear .8s;
}
.founder-panel__bio-head h3 {
	font-size: clamp(30px, 3.4vw, 64px);
	font-weight: 500;
	line-height: .95;
	letter-spacing: -.04em;
}
.founder-panel__bio-head p {
	margin-top: 12px;
	font-size: 13px;
	letter-spacing: .03em;
	text-transform: uppercase;
	color: #bdbdbd;
}
.founder-panel__text { font-size: clamp(15px, .95vw, 17px); line-height: 1.55; max-width: 46em; }
.founder-panel__text p + p { margin-top: .85em; }
.founder-panel__closer { font-weight: 500; }

.founder-panel__bio-head,
.founder-panel__text p {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity .35s ease, transform .5s var(--ease-out);
}
.founder-panel__hint {
	position: absolute;
	z-index: 4;
	top: 16px; right: 16px;
	display: none;
	transition: opacity .3s ease;
}

.founder-panel.is-revealed .founder-panel__media {
	opacity: 0;
	transform: scale(1.06);
	filter: grayscale(1) blur(10px);
}
.founder-panel.is-revealed .founder-panel__caption { opacity: 0; transform: translateY(12px); }
.founder-panel.is-revealed .founder-panel__bio { visibility: visible; transition-delay: 0s; }
.founder-panel.is-revealed .founder-panel__bio-head,
.founder-panel.is-revealed .founder-panel__text p {
	opacity: 1;
	transform: none;
	transition: opacity .7s ease, transform .9s var(--ease-out);
	transition-delay: calc(.3s + var(--d, 0) * .08s);
}
.founder-panel.is-revealed .founder-panel__hint { opacity: 0; }

@media (hover: none), (pointer: coarse) {
	.founder-panel { cursor: pointer; }
	.founder-panel__hint { display: block; }
}
@media (max-width: 900px) {
	/* Photo keeps a portrait frame; the panel only grows to the bio's height once revealed. */
	.founder-panel { min-height: 0; aspect-ratio: 3 / 2; }
	.founder-panel__bio { position: absolute; inset: 0; grid-template-columns: 1fr; align-content: start; }
	.founder-panel.is-revealed { aspect-ratio: auto; }
	.founder-panel.is-revealed .founder-panel__bio { position: relative; }
}
@media (max-width: 600px) and (orientation: portrait) {
	.founder-panel { aspect-ratio: 4 / 5; }
}
@media (max-width: 900px) and (orientation: landscape) and (max-height: 500px) {
	.founder-panel { aspect-ratio: 21 / 8; }
}

/* 04 Join */
.join-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(40px, 5vw, 110px);
	align-items: start;
}
.join-title {
	font-size: clamp(44px, 6.3vw, 160px);
	position: sticky;
	top: calc(var(--header-h) + var(--admin-offset) + 40px);
}
.join-title span { display: block; }
.join-intro {
	max-width: 34em;
	margin: 0 auto clamp(32px, 3.4vw, 56px);
	text-align: center;
	font-size: clamp(17px, 1.3vw, 21px);
	line-height: 1.45;
}
.join-form { max-width: 600px; margin: 0 auto; }
@media (max-width: 960px) {
	.join-grid { grid-template-columns: 1fr; }
	.join-title { position: static; font-size: var(--fs-hero); }
}

/* Forms ------------------------------------------------------------------- */
.form-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 14px;
}
.form-row--full { grid-column: 1 / -1; }
@media (max-width: 560px) { .form-grid { grid-template-columns: 1fr; } }

.field {
	display: block;
	border: 1px solid var(--fg);
	padding: 9px 14px 10px;
	cursor: text;
	transition: box-shadow .2s ease;
}
.field:focus-within { box-shadow: inset 0 0 0 1px var(--fg); }
.field__label,
.field__legend {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-family: var(--mono);
	font-size: 10px;
	line-height: 1.4;
	letter-spacing: .06em;
	text-transform: uppercase;
	margin-bottom: 4px;
}
.field__label em,
.field__legend em { font-style: normal; color: var(--muted); }
.field__legend { width: 100%; margin-bottom: 12px; }

.field input,
.field textarea {
	display: block;
	width: 100%;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--fg);
	font: inherit;
	font-size: 18px;
	line-height: 1.35;
	padding: 2px 0;
	outline: none;
	-webkit-appearance: none;
	appearance: none;
}
.field textarea { min-height: 190px; resize: vertical; }
.field input::placeholder,
.field textarea::placeholder { color: var(--muted); opacity: 1; }
.field input:-webkit-autofill {
	-webkit-text-fill-color: var(--fg);
	-webkit-box-shadow: 0 0 0 100px var(--bg) inset;
	caret-color: var(--fg);
}
.field__help { margin-top: 7px; font-size: 13px; line-height: 1.4; color: var(--muted); }
.field__error {
	margin-top: 7px;
	font-size: 13px;
	line-height: 1.4;
	font-weight: 500;
}
.field__error::before { content: "— "; }
.form-row.is-invalid .field { box-shadow: inset 0 0 0 1px var(--fg); border-style: dashed; }
.form-row.is-invalid .chip span,
.form-row.is-invalid .choice-card__body { border-style: dashed; }

/* Checkboxes */
.checks { margin-top: 28px; }
.checks__legend {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	margin-bottom: 12px;
}
.check {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 6px 0;
	cursor: pointer;
	width: fit-content;
}
.check input { position: absolute; opacity: 0; width: 18px; height: 18px; margin: 0; cursor: pointer; }
.check__box {
	position: relative;
	width: 18px; height: 18px;
	border: 1px solid var(--fg);
	flex: none;
	transition: background-color .15s ease;
}
.check__box::after {
	content: "";
	position: absolute;
	left: 5px; top: 1px;
	width: 5px; height: 10px;
	border: solid var(--bg);
	border-width: 0 1.5px 1.5px 0;
	transform: rotate(45deg) scale(0);
	transition: transform .2s var(--ease-out);
}
.check input:checked + .check__box { background: var(--fg); }
.check input:checked + .check__box::after { transform: rotate(45deg) scale(1); }
.check input:focus-visible + .check__box { outline: 1px solid var(--fg); outline-offset: 3px; }

/* Chips (single choice) */
.chips { display: flex; flex-wrap: wrap; gap: 10px; }
.chip { position: relative; cursor: pointer; }
.chip input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.chip span {
	display: block;
	border: 1px solid var(--fg);
	padding: 11px 18px 10px;
	font-size: 15px;
	line-height: 1.1;
	transition: background-color .2s ease, color .2s ease;
}
.chip:hover span { background: color-mix(in srgb, var(--fg) 10%, transparent); }
.chip input:checked + span { background: var(--fg); color: var(--bg); }
.chip input:focus-visible + span { outline: 1px solid var(--fg); outline-offset: 3px; }

/* Choice cards (Anonymous / With my name) */
.choice-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 640px) { .choice-cards { grid-template-columns: 1fr; } }
.choice-card { position: relative; cursor: pointer; display: block; }
.choice-card input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.choice-card__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	height: 100%;
	border: 1px solid var(--fg);
	padding: 20px 22px 22px;
	transition: background-color .2s ease, color .2s ease;
}
.choice-card__body strong { font-size: 15px; font-weight: 600; letter-spacing: .04em; }
.choice-card__body span { font-size: 15px; line-height: 1.4; }
.choice-card:hover .choice-card__body { background: color-mix(in srgb, var(--fg) 8%, transparent); }
.choice-card input:checked + .choice-card__body { background: var(--fg); color: var(--bg); }
.choice-card input:focus-visible + .choice-card__body { outline: 1px solid var(--fg); outline-offset: 3px; }

.form-actions { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 32px; }
.form-actions--split { justify-content: space-between; }
.form-status { font-size: 14px; line-height: 1.4; }
.form-status:empty { display: none; }
.form-note { margin-top: 28px; font-size: 12px; line-height: 1.5; color: var(--muted); }

.form-confirmation { padding: clamp(24px, 4vw, 48px) 0; }
.form-confirmation .mono { color: var(--muted); margin-bottom: 14px; }
.form-confirmation__title {
	font-size: clamp(30px, 3.4vw, 56px);
	font-weight: 500;
	letter-spacing: -.035em;
	line-height: 1;
	margin-bottom: 18px;
}
.form-confirmation p:not(.mono):not(.form-confirmation__title) { max-width: 36em; font-size: 17px; }
.form-confirmation .link-cta,
.form-confirmation .btn-outline { margin-top: 28px; }
.js .form-confirmation:not([hidden]) { animation: rise .8s var(--ease-out) both; }
@keyframes rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* 05 Bring it to BGSG */
.bring-statement { text-align: center; max-width: 15ch; margin: 0 auto; }
.bring-intro {
	max-width: 34em;
	margin: clamp(28px, 3vw, 48px) auto clamp(56px, 6vw, 112px);
	text-align: center;
	font-size: clamp(17px, 1.35vw, 22px);
	line-height: 1.45;
}
.bring-wrap { max-width: 920px; margin: 0 auto; }
.form-step { border-top: 1px solid var(--line); padding-top: 22px; margin-top: 40px; }
.form-step:first-child { margin-top: 0; }
.form-step__title {
	display: flex;
	gap: 14px;
	align-items: baseline;
	font-size: clamp(18px, 1.5vw, 24px);
	font-weight: 500;
	letter-spacing: -.015em;
	line-height: 1.25;
	margin-bottom: 20px;
}
.form-step__title .mono { color: var(--muted); flex: none; }
.form-step > .field__error { margin-top: 12px; }
.named-fields { margin-top: 18px; }
.js .named-fields:not([hidden]) { animation: rise .6s var(--ease-out) both; }

/* 06 Let's Collaborate */
.collab-title { text-align: center; }
.collab-intro {
	max-width: 36em;
	margin: clamp(22px, 2.2vw, 36px) auto clamp(64px, 7vw, 128px);
	text-align: center;
	font-size: clamp(16px, 1.25vw, 20px);
	font-weight: 400;
	line-height: 1.45;
}
.collab-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 3vw, 56px); }
.collab-card {
	display: flex;
	flex-direction: column;
	gap: 16px;
	min-height: 250px;
	border-top: 1px solid var(--fg);
	padding-top: 20px;
}
.collab-card h3 { font-size: clamp(26px, 2.5vw, 44px); font-weight: 500; letter-spacing: -.035em; line-height: 1; }
.collab-card p { font-size: 16px; line-height: 1.5; max-width: 30em; }
.collab-card .link-cta { margin-top: auto; align-self: flex-start; }
@media (max-width: 900px) {
	.collab-grid { grid-template-columns: 1fr; }
	.collab-card { min-height: 0; padding-bottom: 12px; }
}

/* Modals (one system for every pop-up) ------------------------------------ */
.modal {
	position: fixed;
	inset: 0;
	z-index: 120;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 18px;
	visibility: hidden;
	pointer-events: none;
	transition: visibility 0s linear .6s;
}
.modal.is-open { visibility: visible; pointer-events: auto; transition: visibility 0s; }
.modal__scrim {
	position: absolute; inset: 0;
	background: rgba(0, 0, 0, .5);
	opacity: 0;
	transition: opacity .5s ease;
}
.modal.is-open .modal__scrim { opacity: 1; }
.modal__panel {
	--bg: var(--black); --fg: var(--white); --muted: #9d9d9d; --line: rgba(255, 255, 255, .28);
	position: relative;
	width: min(560px, 100%);
	max-height: calc(100vh - 36px);
	max-height: calc(100svh - 36px);
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--black);
	color: var(--white);
	outline: 1px solid rgba(255, 255, 255, .16);
	clip-path: inset(50% 0 50% 0);
	transition: clip-path .6s var(--ease-in-out);
}
.modal.is-open .modal__panel { clip-path: inset(0 0 0 0); }
.modal__panel--sm { width: min(540px, 100%); }
.modal__panel--md { width: min(680px, 100%); }
.modal__panel--lg { width: min(920px, 100%); }
.modal__inner {
	padding: clamp(40px, 5vw, 72px) clamp(24px, 5vw, 72px) clamp(32px, 4vw, 60px);
	opacity: 0;
	transform: translateY(14px);
	transition: opacity .35s ease, transform .5s var(--ease-out);
}
.modal.is-open .modal__inner { opacity: 1; transform: none; transition-delay: .32s; }
.modal__close {
	position: absolute;
	top: 22px; right: 22px;
	z-index: 2;
	width: 30px; height: 30px;
}
.modal__close::before,
.modal__close::after {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 50%;
	height: 1px;
	background: currentColor;
	transform: rotate(45deg);
	transition: transform .35s var(--ease-out);
}
.modal__close::after { transform: rotate(-45deg); }
.modal__close:hover::before { transform: rotate(135deg); }
.modal__close:hover::after { transform: rotate(45deg); }
@media (max-width: 600px) {
	.modal__inner { padding-top: 68px; }
	.modal__close { top: 16px; right: 16px; }
}

/* Email pop-up */
.popup__title {
	font-size: 15px;
	letter-spacing: .01em;
	text-transform: uppercase;
	margin-bottom: 18px;
}
.popup__text { font-size: 18px; line-height: 1.4; margin-bottom: 26px; max-width: 26em; }

/* Email capture (pop-up + footer) */
.email-capture__row { display: flex; align-items: stretch; }
.email-capture__field {
	flex: 1;
	min-width: 0;
	display: block;
	border: 1px solid var(--fg);
	border-right: 0;
	padding: 8px 14px 9px;
	cursor: text;
}
.email-capture__label {
	display: block;
	font-family: var(--mono);
	font-size: 9px;
	letter-spacing: .08em;
	text-transform: uppercase;
	line-height: 1.3;
}
.email-capture__field input {
	display: block;
	width: 100%;
	border: 0;
	background: transparent;
	color: var(--fg);
	font: inherit;
	font-size: 17px;
	padding: 3px 0 0;
	outline: none;
	border-radius: 0;
}
.email-capture__submit {
	flex: none;
	background: var(--fg);
	color: var(--bg);
	border: 1px solid var(--fg);
	padding: 0 clamp(18px, 3vw, 36px);
	font-size: 13px;
	letter-spacing: .04em;
	text-transform: uppercase;
	transition: opacity .2s ease;
}
.email-capture__submit:hover { opacity: .82; }
.email-capture__error { margin-top: 8px; font-size: 13px; }
.email-capture__error::before { content: "— "; }
.email-capture__disclaimer { margin-top: 12px; font-size: 12px; line-height: 1.35; color: #bdbdbd; max-width: 27em; }
.email-capture__disclaimer a { text-decoration: underline; text-underline-offset: 2px; }

/* Welcome (after joining) */
.welcome { text-align: center; }
.welcome__headline {
	font-size: clamp(34px, 5vw, 64px);
	font-weight: 600;
	letter-spacing: -.04em;
	line-height: .95;
}
.welcome__sub {
	margin-top: 16px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .06em;
}
.welcome__letter {
	max-width: 32em;
	margin: clamp(28px, 3vw, 40px) auto 0;
	font-size: 17px;
	line-height: 1.55;
}
.welcome__letter p + p { margin-top: .9em; }
.welcome__sign { margin: 28px 0 34px; display: flex; flex-direction: column; gap: 2px; font-size: 16px; }
.welcome__sign strong { font-weight: 600; }
.welcome__sign span { color: #bdbdbd; }
.modal.is-open .welcome > * { animation: rise .9s var(--ease-out) both; }
.modal.is-open .welcome > :nth-child(2) { animation-delay: .45s; }
.modal.is-open .welcome > :nth-child(3) { animation-delay: .55s; }
.modal.is-open .welcome > :nth-child(4) { animation-delay: .7s; }
.modal.is-open .welcome > :nth-child(5) { animation-delay: .8s; }
.modal.is-open .welcome > :nth-child(6) { animation-delay: .9s; }

/* Inquiry modals */
.inquiry__eyebrow { color: var(--muted); margin-bottom: 14px; }
.inquiry__title { font-size: clamp(32px, 4.2vw, 60px); font-weight: 500; letter-spacing: -.04em; line-height: .95; }
.inquiry__desc { margin: 16px 0 36px; max-width: 34em; font-size: 16px; line-height: 1.5; color: #d6d6d6; }
.inquiry__types { margin-bottom: 22px; }

/* Footer (A24 structure, BGSG content) ------------------------------------ */
.site-footer {
	--bg: var(--black); --fg: var(--white); --muted: #9d9d9d;
	background: var(--black);
	color: var(--white);
	padding: 5px var(--pad) 32px;
	font-size: 15px;
	line-height: 1.35;
}
.footer-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 48px;
	padding: 54px 0;
}
.footer-col { display: flex; flex-direction: column; justify-content: space-between; gap: 48px; min-width: 0; }
.footer-brand .logo--full { font-size: 30px; }
.footer-brand p { margin-top: 16px; max-width: 24em; color: #cfcfcf; }
.footer-eyebrow {
	border-top: 1px solid var(--white);
	padding-top: 6px;
	margin-bottom: 18px;
	font-size: 12px;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: .01em;
}
.footer-list li { text-transform: uppercase; }
.footer-list li:not(:last-child) { margin-bottom: 9px; }
.footer-list a { border-bottom: 1px solid transparent; transition: border-color .2s ease; }
.footer-list a:hover { border-bottom-color: currentColor; }
.footer-list span[aria-disabled] { color: #8a8a8a; }
.footer-legal__contact { display: flex; flex-direction: column; gap: 2px; margin-top: 18px; }
.footer-legal__contact a { text-transform: none; width: fit-content; }
.footer-signup p { max-width: 26em; margin-bottom: 22px; }
@media (max-width: 900px) {
	.footer-grid { grid-template-columns: 1fr 1fr; }
	.footer-col--brand { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
	.footer-grid { grid-template-columns: 1fr; gap: 54px; }
}

/* Podcast / Events / 404 --------------------------------------------------- */
.page-coming {
	--bg: var(--black); --fg: var(--white);
	position: relative;
	display: grid;
	place-items: center;
	min-height: calc(100vh - var(--header-h) - var(--admin-offset));
	min-height: calc(100svh - var(--header-h) - var(--admin-offset));
	padding: 80px var(--pad);
	overflow: hidden;
	background: var(--black);
	color: var(--white);
	text-align: center;
}
.page-coming__content { position: relative; z-index: 3; }
.page-coming__eyebrow { color: #bdbdbd; margin-bottom: 18px; }
.page-coming__title {
	font-size: clamp(56px, 11vw, 230px);
	font-weight: 500;
	letter-spacing: -.05em;
	line-height: .88;
}
.page-coming__sub { margin-top: clamp(18px, 2vw, 30px); font-size: clamp(17px, 1.7vw, 26px); letter-spacing: -.01em; }

.static-canvas {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	z-index: 1;
	opacity: .16;
	image-rendering: pixelated;
}
.static-canvas--soft { opacity: .22; }
.scanlines {
	position: absolute; inset: 0; z-index: 2;
	pointer-events: none;
	background: repeating-linear-gradient(to bottom, rgba(255, 255, 255, .04) 0 1px, transparent 1px 3px);
	animation: roll 9s linear infinite;
}
@keyframes roll { from { background-position: 0 0; } to { background-position: 0 300px; } }

.glitch { position: relative; }
.glitch::before,
.glitch::after {
	content: attr(data-text);
	position: absolute; inset: 0;
	color: var(--white);
	pointer-events: none;
	opacity: 0;
}
.glitch::before { animation: glitch-a 5.5s steps(1) infinite; }
.glitch::after { animation: glitch-b 5.5s steps(1) infinite; }
@keyframes glitch-a {
	0%, 88%, 100% { opacity: 0; transform: none; clip-path: none; }
	89% { opacity: .9; transform: translate(-6px, 0); clip-path: inset(12% 0 64% 0); }
	91% { opacity: .9; transform: translate(5px, 0); clip-path: inset(58% 0 20% 0); }
	93% { opacity: .9; transform: translate(-3px, 0); clip-path: inset(34% 0 44% 0); }
	95% { opacity: 0; }
}
@keyframes glitch-b {
	0%, 89%, 100% { opacity: 0; transform: none; clip-path: none; }
	90% { opacity: .7; transform: translate(7px, 0); clip-path: inset(70% 0 8% 0); }
	92% { opacity: .7; transform: translate(-5px, 0); clip-path: inset(6% 0 78% 0); }
	94% { opacity: 0; }
}
.page-coming--podcast .page-coming__title { animation: flicker 5.5s steps(1) infinite; }
@keyframes flicker { 0%, 88%, 96%, 100% { opacity: 1; } 90% { opacity: .55; } 92% { opacity: .85; } 94% { opacity: .4; } }

.sound-toggle {
	position: absolute;
	z-index: 4;
	right: var(--pad);
	bottom: 24px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 0;
	color: #cfcfcf;
}
.sound-toggle:hover { color: var(--white); }
.sound-toggle__dot { width: 7px; height: 7px; border: 1px solid currentColor; border-radius: 50%; }
.sound-toggle[aria-pressed="true"] .sound-toggle__dot { background: currentColor; }

.page-coming--events { min-height: calc(100vh - var(--header-h) - var(--admin-offset)); min-height: calc(100svh - var(--header-h) - var(--admin-offset)); }
.events-media { position: absolute; inset: 0; z-index: 0; }
.events-media img,
.events-media video { width: 100%; height: 100%; object-fit: cover; object-position: 50% 46%; filter: grayscale(1); }
.events-media.is-placeholder {
	background: radial-gradient(90% 80% at 30% 40%, #2c2c2c 0%, #111 55%, #000 100%);
}
.events-shade { position: absolute; inset: 0; z-index: 1; background: rgba(0, 0, 0, .38); }

/* Legal pages (Privacy Policy, Terms of Use) -------------------------------
   Black header like the rest of the site, then a sticky contents list beside
   numbered sections separated by hairlines. */
.legal { background: var(--white); color: var(--black); }
.legal-hero {
	--bg: var(--black); --fg: var(--white);
	background: var(--black);
	color: var(--white);
	padding: clamp(72px, 9vw, 150px) 0 clamp(40px, 5vw, 72px);
}
.legal-hero__eyebrow { color: #9d9d9d; margin-bottom: 18px; }
.legal-hero__title { max-width: 14ch; }
.legal-hero__date { margin-top: clamp(20px, 2.4vw, 36px); color: #cfcfcf; }

.legal-layout {
	--bg: var(--white); --fg: var(--black); --muted: #6a6a6a;
	display: grid;
	grid-template-columns: minmax(220px, 300px) minmax(0, 720px);
	gap: clamp(40px, 7vw, 140px);
	align-items: start;
	padding-top: clamp(56px, 6vw, 96px);
	padding-bottom: clamp(80px, 9vw, 160px);
}
.legal-layout--plain { grid-template-columns: minmax(0, 720px); }

/* Contents */
.legal-toc {
	position: sticky;
	top: calc(var(--header-h) + var(--admin-offset) + 32px);
	max-height: calc(100vh - var(--header-h) - var(--admin-offset) - 64px);
	overflow-y: auto;
	border-top: 1px solid var(--black);
	padding-top: 14px;
	scrollbar-width: thin;
}
.legal-toc summary {
	list-style: none;
	color: var(--muted);
	margin-bottom: 14px;
	cursor: default;
}
.legal-toc summary::-webkit-details-marker { display: none; }
.legal-toc ol { list-style: none; padding: 0; margin: 0; }
.legal-toc li + li { margin-top: 2px; }
.legal-toc a {
	display: flex;
	gap: 12px;
	padding: 5px 0;
	font-size: 12px;
	line-height: 1.35;
	letter-spacing: .03em;
	text-transform: uppercase;
	color: #8a8a8a;
	transition: color .2s ease;
}
.legal-toc a:hover,
.legal-toc a.is-active { color: var(--black); }
.legal-toc__num { font-family: var(--mono); font-size: 10.5px; padding-top: 1px; min-width: 20px; }
.legal-toc a.is-active .legal-toc__num::before { content: "→ "; }

/* Body */
.legal-body { min-width: 0; }
.legal-intro {
	font-size: clamp(18px, 1.45vw, 22px);
	line-height: 1.5;
	letter-spacing: -.012em;
	padding-bottom: clamp(32px, 3.4vw, 48px);
}
.legal-intro p + p { margin-top: .9em; }
.legal-section {
	border-top: 1px solid var(--black);
	padding: 22px 0 clamp(36px, 3.6vw, 52px);
	scroll-margin-top: calc(var(--header-h) + var(--admin-offset) + 24px);
}
.legal-section__title {
	display: flex;
	gap: 18px;
	align-items: baseline;
	font-size: clamp(17px, 1.35vw, 20px);
	font-weight: 600;
	letter-spacing: .01em;
	line-height: 1.3;
	margin-bottom: 18px;
}
.legal-section__num { font-family: var(--mono); font-size: 12px; font-weight: 400; color: var(--muted); min-width: 22px; }
.legal-section__body { font-size: 16.5px; line-height: 1.68; color: #1c1c1c; }
.legal-section__body > * + * { margin-top: .95em; }
.legal-section__body h3 {
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--muted);
	margin-top: 1.8em;
}
.legal-section__body ul { list-style: none; padding: 0; }
.legal-section__body li { position: relative; padding-left: 22px; }
.legal-section__body li + li { margin-top: .35em; }
.legal-section__body li::before {
	content: "";
	position: absolute;
	left: 2px; top: .72em;
	width: 8px; height: 1px;
	background: currentColor;
}
.legal a[href^="mailto:"] { color: inherit; text-decoration: underline; text-decoration-color: #9a9a9a; text-underline-offset: 3px; }
.legal a[href^="mailto:"]:hover { text-decoration-color: currentColor; }
.legal-top { border-top: 1px solid var(--black); padding-top: 18px; }

@media (max-width: 960px) {
	.legal-layout { grid-template-columns: 1fr; gap: 32px; }
	.legal-toc { position: static; max-height: none; }
	.legal-toc summary { cursor: pointer; color: var(--black); }
	.legal-toc summary::after { content: " +"; }
	.legal-toc[open] summary::after { content: " –"; }
}
@media (max-width: 768px) {
	.legal-section__body { font-size: 15.5px; }
	.legal-section__title { gap: 12px; }
}

/* Reduced motion ---------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		transition-delay: 0s !important;
	}
	.js [data-reveal] { opacity: 1; transform: none; }
}
