/* Purpose: a quiet, luminous workspace for documented collaborations. */
.home-page .purpose-partners.purpose-studio {
	position: relative;
	background: #0b2445;
	color: #f0f5ff;
	padding-block: 48px 56px;
	isolation: isolate;
}
.purpose-studio:before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at 10% 40%, #23466c22, transparent 55%);
	pointer-events: none;
	z-index: -1;
}
.purpose-topline {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	border-bottom: 1px solid #d3e3fc25;
	padding-bottom: 25px;
	font-size: 9px;
	letter-spacing: 0.13em;
	color: #bdd8ff;
	margin-bottom: 48px;
}
.purpose-topline > span:first-child {
	display: flex;
	align-items: center;
	gap: 10px;
}
.purpose-topline i {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #bdd8ff;
	box-shadow: 0 0 0 5px #bdd8ff10;
}
.purpose-studio .partners-heading {
	gap: 60px;
	margin-bottom: 40px;
	align-items: flex-end;
}
.purpose-studio .partners-heading .eyebrow {
	color: #bdd8ff;
	font-size: 10px;
	margin-bottom: 18px;
}
.home-page .purpose-studio .partners-heading h2 {
	color: #f0f5ff;
	font-size: clamp(48px, 6.1vw, 85px);
	font-family: var(--hmbd-body), sans-serif;
	font-weight: 400;
	letter-spacing: -0.065em;
	line-height: 1.02;
}
.purpose-studio .partners-heading h2 em {
	display: block;
	color: #bdd8ff;
	font-family: var(--hmbd-display), Georgia, serif;
	letter-spacing: -0.055em;
	margin-top: 7px;
}
.purpose-studio .partners-heading-copy {
	max-width: 350px;
}
.purpose-studio .partners-heading-copy p {
	color: #bdd8ff;
	font-size: 15px;
	line-height: 1.85;
}
.purpose-studio .partners-collaborate {
	color: #e6efff;
	border-color: #bdd8ff4d;
	font-size: 13px;
	font-weight: 400;
	justify-content: space-between;
	width: 100%;
	gap: 20px;
	margin-top: 15px;
	min-height: 48px;
}
.purpose-studio .partners-collaborate span {
	height: 35px;
	width: 35px;
	border-radius: 50%;
	border: 1px solid #d3e3fc40;
	display: grid;
	place-items: center;
	background: #d3e3fc08;
}
.purpose-workspace {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	border: 1px solid #d3e3fc22;
	border-radius: 28px;
	background: #0b244555;
	overflow: hidden;
	box-shadow: 0 20px 60px #0b244533;
}
.purpose-visual {
	position: relative;
	min-height: 555px;
	overflow: hidden;
	background: radial-gradient(ellipse at 50% 48%, #23466c36, #102d5533 45%, #0b2445 80%);
	isolation: isolate;
}
.purpose-visual:after {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(#bdd8ff30 0.5px, transparent 0.8px);
	background-size: 24px 24px;
	opacity: 0.24;
	pointer-events: none;
}
.purpose-orbit {
	position: absolute;
	left: 50%;
	top: 47%;
	border: 1px solid #bdd8ff24;
	border-radius: 50%;
	transform: translate(-50%, -50%) rotate(-25deg);
	height: 66%;
	width: 66%;
	pointer-events: none;
}
.orbit-a {
	height: 46%;
	width: 86%;
	transform: translate(-50%, -50%) rotate(-28deg);
}
.orbit-b {
	height: 46%;
	width: 86%;
	transform: translate(-50%, -50%) rotate(28deg);
	border-color: #bdd8ff14;
}
.orbit-c {
	height: 70%;
	width: 70%;
	border-style: dashed;
	border-color: #bdd8ff18;
}
.purpose-core {
	position: absolute;
	left: 50%;
	top: 47%;
	transform: translate(-50%, -50%);
	width: 180px;
	height: 180px;
	border-radius: 50%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 19px;
	background: radial-gradient(circle at 25% 25%, #e6efff, #bdd8ff);
	box-shadow:
		0 15px 50px #00000028,
		inset 0 2px 5px #ffffffb3,
		0 0 0 13px #bdd8ff0a,
		0 0 0 14px #bdd8ff18;
	z-index: 2;
}
.purpose-core img {
	width: 125px;
	height: 67px;
	object-fit: contain;
}
.purpose-core > span {
	font-size: 7px;
	letter-spacing: 0.11em;
	color: #23466c;
}
.purpose-orbit-marker {
	position: absolute;
	z-index: 2;
	border-radius: 50%;
	height: 9px;
	width: 9px;
	background: #bdd8ff;
	box-shadow:
		0 0 0 6px #bdd8ff0c,
		0 0 20px #bdd8ff30;
}
.marker-one {
	top: 27%;
	left: 18%;
}
.marker-two {
	top: 39%;
	right: 12%;
}
.marker-three {
	top: 68%;
	left: 34%;
}
.purpose-visual-caption {
	position: absolute;
	left: 28px;
	bottom: 30px;
	font-size: 8px;
	letter-spacing: 0.1em;
	line-height: 1.8;
	color: #9bb9dd;
	z-index: 2;
}
.purpose-visual-caption b {
	display: block;
	font-family: var(--hmbd-display), Georgia, serif;
	font-size: 22px;
	letter-spacing: -0.02em;
	color: #d3e3fc;
	font-weight: 400;
	margin-top: 5px;
}
.purpose-visual-index {
	position: absolute;
	top: 25px;
	left: 28px;
	font-family: var(--hmbd-display), Georgia, serif;
	font-size: 31px;
	display: flex;
	align-items: center;
	gap: 12px;
	z-index: 2;
	color: #d3e3fc;
}
.purpose-visual-index small {
	font-family: var(--hmbd-body), sans-serif;
	font-size: 7px;
	letter-spacing: 0.09em;
	color: #9bb9dd;
	line-height: 1.7;
}
.partner-console {
	padding: 25px;
	border-left: 1px solid #d3e3fc1c;
	display: flex;
	flex-direction: column;
	min-width: 0;
	background: linear-gradient(130deg, #23466c18, transparent);
}
.partner-console-top {
	display: flex;
	justify-content: space-between;
	gap: 15px;
	font-size: 8px;
	letter-spacing: 0.1em;
	color: #9bb9dd;
	margin-bottom: 18px;
}
.partner-selector {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}
.partner-choice {
	display: flex;
	align-items: center;
	gap: 14px;
	text-align: left;
	border: 1px solid transparent;
	padding: 12px 15px;
	background: transparent;
	min-height: 48px;
	line-height: 1.5;
	color: #9bb9dd;
	font-family: inherit;
	font-size: 12px;
	border-radius: 9px;
	cursor: pointer;
	transition:
		color 0.25s,
		background 0.25s,
		border-color 0.25s;
}
.partner-choice-number {
	font-size: 8px;
	color: #6d89ad;
}
.partner-choice > i {
	font-style: normal;
	font-size: 17px;
	margin-left: auto;
	color: #bdd8ff;
	transition: transform 0.2s;
}
.partner-choice[aria-selected="true"] {
	background: #d3e3fc10;
	border-color: #9bb9dd50;
	color: #e6efff;
}
.partner-choice:hover {
	background: #d3e3fc08;
	color: #f0f5ff;
}
.partner-choice:hover > i {
	transform: translate(2px, -2px);
}
.partner-detail {
	margin-top: 20px;
	padding: 23px;
	background: #d3e3fc08;
	border: 1px solid #d3e3fc20;
	border-radius: 14px;
	flex: 1;
}
.partner-detail-kicker {
	display: block;
	font-size: 7px;
	letter-spacing: 0.12em;
	line-height: 1.8;
	color: #bdd8ff;
	margin-bottom: 13px;
}
.partner-detail h3 {
	font-family: var(--hmbd-display), Georgia, serif;
	font-size: 25px;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: #e6efff;
	font-weight: 400;
	margin: 0 0 9px;
}
.partner-detail-place {
	font-size: 10px;
	line-height: 1.6;
	color: #bdd8ff;
}
.partner-detail p {
	font-size: 12px !important;
	color: #bdd8ff;
	line-height: 1.8 !important;
	margin: 14px 0 22px;
}
.partner-detail-foot {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 8px 14px;
	border-top: 1px solid #bdd8ff20;
	padding-top: 11px;
}
.partner-detail-foot > span {
	font-size: 7px;
	letter-spacing: 0.07em;
	color: #9bb9dd;
}
.partner-detail-foot a {
	font-size: 10px;
	min-height: 34px;
	display: flex;
	align-items: center;
	gap: 20px;
	color: #d3e3fc;
}
.purpose-studio .partners-bottom {
	margin-top: 24px;
}
.purpose-studio .partners-bottom > p {
	font-size: 12px;
	color: #d3e3fc;
}
.purpose-studio .partners-bottom > p span {
	display: block;
	font-size: 10px;
	color: #9bb9dd;
	margin-top: 3px;
}
.purpose-studio .partners-evidence-link {
	color: #d3e3fc;
	font-size: 12px;
	gap: 20px;
}
/* Portfolio: a dimensional book, editorial chapters and direct document actions. */
.home-page .evidence-section.portfolio-studio {
	display: block;
	background: #f0f5ff;
	padding-block: 44px 64px;
	overflow: hidden;
}
.portfolio-topline {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	border-bottom: 1px solid #102d5525;
	padding-bottom: 24px;
	margin-bottom: 48px;
	font-size: 9px;
	letter-spacing: 0.11em;
	color: #52667f;
}
.portfolio-showcase {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	gap: clamp(30px, 6vw, 90px);
	align-items: center;
	min-width: 0;
}
.portfolio-studio .evidence-intro {
	max-width: 490px;
}
.portfolio-studio .evidence-intro .eyebrow {
	font-size: 10px;
	color: #23466c;
	margin-bottom: 23px;
}
.home-page .portfolio-studio .evidence-intro h2 {
	font-family: var(--hmbd-body), sans-serif;
	font-size: clamp(46px, 4.8vw, 69px);
	font-weight: 400;
	letter-spacing: -0.06em;
	line-height: 1.025;
	color: #102d55;
	margin: 0;
}
.portfolio-studio .evidence-intro h2 em {
	font-family: var(--hmbd-display), Georgia, serif;
	font-weight: 400;
	letter-spacing: -0.06em;
	color: #52667f;
}
.portfolio-studio .evidence-intro p {
	font-size: 16px;
	max-width: 375px;
	line-height: 1.8;
	color: #52667f;
	margin: 25px 0;
}
.portfolio-primary-actions {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: 12px;
}
.portfolio-primary-actions .portfolio-read {
	background: #102d55;
	color: #f0f5ff;
	min-height: 52px;
	padding-inline: 24px;
	font-size: 13px;
	gap: 36px;
	box-shadow: 0 8px 24px #0b244510;
}
.portfolio-primary-actions .portfolio-read:hover {
	background: #23466c;
	box-shadow: 0 10px 26px #0b244520;
}
.portfolio-download {
	display: flex;
	align-items: center;
	gap: 11px;
	color: #23466c;
	min-height: 44px;
	font-size: 12px;
	border-bottom: 1px solid #6d89ad55;
}
.portfolio-download svg {
	width: 17px;
	height: 17px;
}
.portfolio-specs {
	display: flex;
	gap: 27px;
	margin-top: 23px;
	padding-top: 23px;
	border-top: 1px solid #102d5522;
	font-size: 10px;
	line-height: 1.8;
	color: #6d89ad;
	max-width: 330px;
}
.portfolio-specs > span + span {
	border-left: 1px solid #102d5522;
	padding-left: 27px;
}
.portfolio-specs b {
	font-size: 11px;
	display: block;
	color: #23466c;
	font-weight: 500;
}
.portfolio-report-link {
	font-size: 11px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	gap: 24px;
	color: #52667f;
	margin-top: 12px;
}
.portfolio-book-stage {
	position: relative;
	min-height: 610px;
	display: flex;
	align-items: center;
	justify-content: center;
	isolation: isolate;
	padding-bottom: 30px;
	perspective: 1300px;
	min-width: 0;
}
.portfolio-book-halo {
	position: absolute;
	inset: 10% -10% 10%;
	border-radius: 50%;
	background: radial-gradient(ellipse, #bdd8ff57, #d3e3fc1a 50%, transparent 70%);
	pointer-events: none;
	z-index: -1;
}
.portfolio-book-stage:after {
	content: "";
	position: absolute;
	height: 22px;
	width: 66%;
	bottom: 62px;
	left: 17%;
	border-radius: 50%;
	background: #102d5529;
	filter: blur(17px);
	z-index: -1;
	pointer-events: none;
}
.portfolio-book {
	position: relative;
	width: min(74%, 345px);
	display: block;
	transform: rotateY(-17deg) rotateZ(2deg);
	transform-style: preserve-3d;
	box-shadow: 9px 19px 28px #102d552a;
	transition: transform 0.65s cubic-bezier(0.2, 0.75, 0.25, 1);
	border-radius: 3px 8px 8px 3px;
	background: #102d55;
}
.portfolio-book:hover,
.portfolio-book:focus-visible {
	transform: rotateY(-5deg) rotateZ(0deg) translateY(-7px);
}
.portfolio-book > img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 595/842;
	border-radius: 2px 7px 7px 2px;
	border: 1px solid #102d551f;
}
.portfolio-book:before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, #ffffff15, transparent 9%, transparent 93%, #020c2112);
	pointer-events: none;
	border-radius: inherit;
}
.portfolio-book-spine {
	position: absolute;
	right: 100%;
	top: 0;
	bottom: 0;
	width: 18px;
	background: linear-gradient(90deg, #0b2445, #102d55);
	border-radius: 2px 0 0 2px;
	writing-mode: vertical-rl;
	color: #d3e3fc;
	font-size: 6px;
	letter-spacing: 0.08em;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	transform: rotateY(-5deg);
	transform-origin: right;
}
.portfolio-book-edge {
	position: absolute;
	left: 100%;
	top: 5px;
	bottom: 5px;
	width: 10px;
	background: repeating-linear-gradient(0deg, #bdd8ff, #bdd8ff 1px, #f0f5ff 1px, #f0f5ff 3px);
	border: 1px solid #9bb9dd60;
	transform: rotateY(20deg);
	transform-origin: left;
	border-radius: 0 3px 3px 0;
}
.portfolio-book-caption {
	display: none !important;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	font-size: 7px;
	letter-spacing: 0.08em;
	color: #6d89ad;
	line-height: 1.7;
}
.portfolio-book-caption > span:first-child {
	display: flex;
	align-items: center;
	gap: 8px;
}
.portfolio-book-caption i {
	height: 5px;
	width: 5px;
	border-radius: 50%;
	background: #6d89ad;
}
.portfolio-chapter-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	border: 1px solid #23466c2c;
	border-radius: 18px;
	overflow: hidden;
	background: #f7f9fd;
	margin-top: 48px;
}
.portfolio-chapter {
	position: relative;
	padding: 28px 24px 61px;
	min-height: 182px;
	transition: background 0.25s;
	color: #102d55;
	display: block;
}
.portfolio-chapter + .portfolio-chapter {
	border-left: 1px solid #23466c22;
}
.portfolio-chapter > span {
	font-size: 8px;
	letter-spacing: 0.09em;
	color: #6d89ad;
}
.portfolio-chapter h3 {
	font-size: 16px;
	line-height: 1.4;
	letter-spacing: -0.03em;
	font-weight: 500;
	margin: 20px 0 8px;
	color: #102d55;
}
.portfolio-chapter p {
	font-size: 11px !important;
	line-height: 1.8;
	color: #52667f;
	margin: 0;
}
.portfolio-chapter > b {
	position: absolute;
	bottom: 20px;
	right: 24px;
	display: grid;
	place-items: center;
	border: 1px solid #6d89ad40;
	border-radius: 50%;
	height: 31px;
	width: 31px;
	font-weight: 400;
	font-size: 17px;
	transition: transform 0.25s;
}
.portfolio-chapter:hover {
	background: #e6efff;
}
.portfolio-chapter:hover > b {
	transform: rotate(45deg);
}
.portfolio-source-strip {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 27px;
	border: 1px solid #23466c25;
	background: #e6efff;
	border-radius: 18px;
	margin-top: 20px;
}
.portfolio-source-symbol {
	height: 68px;
	width: 53px;
	flex-shrink: 0;
	display: grid;
	place-items: center;
	background: #f0f5ff;
	border: 1px solid #52667f40;
	border-radius: 6px;
	font-family: var(--hmbd-display), Georgia, serif;
	font-size: 26px;
	color: #23466c;
}
.portfolio-source-strip > div:nth-child(2) {
	flex: 1;
}
.portfolio-source-strip h3 {
	font-size: 16px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: -0.025em;
	color: #23466c;
	margin: 0 0 7px;
}
.portfolio-source-strip p {
	font-size: 11px !important;
	line-height: 1.8;
	color: #52667f;
	max-width: 470px;
	margin: 0;
}
.portfolio-source-actions {
	display: flex;
	flex-direction: column;
	flex-shrink: 0;
	gap: 4px;
}
.portfolio-source-actions > a {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	align-items: center;
	min-height: 36px;
	font-size: 11px;
	color: #23466c;
}
.portfolio-data-link {
	border: 0;
	border-bottom: 1px solid #23466c2b;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	padding: 20px 0;
	margin-top: 8px;
	color: #23466c;
	font-size: 12px;
}
.portfolio-data-link small {
	font-size: 10px;
	color: #6d89ad;
}
/* Reader uses real PDF page renders with a native-PDF fallback and accessible text. */
.portfolio-reader-open {
	overflow: hidden;
}
.portfolio-reader {
	padding: 0 !important;
	width: min(1150px, calc(100vw - 48px)) !important;
	max-width: none !important;
	height: min(880px, calc(100dvh - 48px));
	max-height: none !important;
	overflow: hidden !important;
	border: 1px solid #d3e3fc !important;
	border-radius: 20px !important;
	background: #f0f5ff !important;
	color: #102d55;
	box-shadow: 0 28px 120px #0b244560;
	margin: auto !important;
}
.portfolio-reader::backdrop {
	background: #0b242dcc;
	backdrop-filter: blur(7px);
}
.portfolio-reader.is-expanded {
	width: calc(100vw - 18px) !important;
	height: calc(100dvh - 18px);
	border-radius: 12px !important;
}
.portfolio-reader-shell {
	height: 100%;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}
.portfolio-reader-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 18px 24px;
	border-bottom: 1px solid #23466c22;
	background: #f7f9fd;
	flex-shrink: 0;
}
.portfolio-reader-header > div:first-child > span {
	font-size: 8px;
	letter-spacing: 0.11em;
	color: #6d89ad;
}
.portfolio-reader-header h2 {
	font-size: 19px !important;
	letter-spacing: -0.03em !important;
	font-family: var(--hmbd-body), sans-serif !important;
	font-weight: 500 !important;
	line-height: 1.5 !important;
	margin: 3px 0 0 !important;
}
.portfolio-reader-header > div:last-child {
	display: flex;
	align-items: center;
	gap: 8px;
}
.portfolio-reader-header button {
	font-family: inherit;
	border: 1px solid #52667f38;
	background: #fff;
	color: #23466c;
	border-radius: 8px;
	min-height: 40px;
	min-width: 40px;
	cursor: pointer;
	font-size: 20px;
	padding: 6px 11px;
}
.portfolio-reader-header button span {
	font-size: 10px;
	margin-left: 6px;
}
.portfolio-reader-header #portfolio-reader-close {
	font-size: 25px;
}
.portfolio-document-tabs {
	display: flex;
	align-items: center;
	gap: 7px 14px;
	padding: 12px 24px;
	border-bottom: 1px solid #23466c22;
	flex-shrink: 0;
	flex-wrap: wrap;
	background: #f0f5ff;
}
.portfolio-document-tabs button {
	min-height: 38px;
	display: flex;
	align-items: center;
	gap: 12px;
	border-radius: 7px;
	padding: 8px 12px;
	border: 1px solid transparent;
	color: #52667f;
	background: transparent;
	font-family: inherit;
	font-size: 11px;
	line-height: 1.6;
	cursor: pointer;
}
.portfolio-document-tabs button[aria-pressed="true"] {
	background: #102d55;
	color: #f0f5ff;
}
.portfolio-document-tabs button > span {
	font-size: 8px;
	opacity: 0.8;
}
.portfolio-document-tabs > a {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 38px;
	color: #23466c;
	font-size: 11px;
}
.portfolio-document-tabs > a svg {
	width: 16px;
	height: 16px;
}
.portfolio-reader-body {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	flex: 1;
	min-height: 0;
}
.portfolio-reader-sidebar {
	border-right: 1px solid #23466c25;
	padding: 23px 17px;
	overflow: auto;
	background: #f7f9fd;
}
.portfolio-reader-sidebar > span {
	font-size: 8px;
	letter-spacing: 0.09em;
	color: #6d89ad;
	display: block;
	margin: 0 8px 17px;
}
.portfolio-reader-sidebar nav {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.portfolio-reader-sidebar nav button {
	font-family: inherit;
	font-size: 10px;
	line-height: 1.5;
	color: #52667f;
	border: 1px solid transparent;
	background: transparent;
	min-height: 40px;
	padding: 10px;
	border-radius: 6px;
	text-align: left;
	display: flex;
	justify-content: space-between;
	gap: 12px;
	cursor: pointer;
}
.portfolio-reader-sidebar nav button small {
	font-size: 8px;
	color: #6d89ad;
}
.portfolio-reader-sidebar nav button[aria-current="page"] {
	background: #e6efff;
	border-color: #6d89ad60;
	color: #23466c;
}
.portfolio-reader-sidebar > a {
	font-size: 10px;
	min-height: 44px;
	display: flex;
	align-items: center;
	gap: 12px;
	border-top: 1px solid #23466c30;
	margin: 22px 8px 0;
	padding-top: 15px;
	color: #23466c;
}
.portfolio-reader-sidebar p {
	font-size: 9px;
	line-height: 1.8;
	color: #6d89ad;
	margin: 12px 8px;
}
.portfolio-reader-content {
	display: flex;
	flex-direction: column;
	min-height: 0;
	min-width: 0;
}
.portfolio-reader-toolbar {
	padding: 10px 18px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	background: #f7f9fd;
	border-bottom: 1px solid #23466c20;
	flex-shrink: 0;
	font-size: 10px;
	color: #52667f;
}
/* Keep the generated portfolio metadata available in markup while hiding the
   page-count, file-size and edition row from the showcase. */
.home-page #portfolio .portfolio-specs {
	display: none !important;
}
/* Retain the library navigation and source resources in generated markup, but
   keep the homepage portfolio section focused on its primary showcase. */
.home-page #portfolio :is(
		.portfolio-chapter-grid,
		.portfolio-source-strip,
		.portfolio-data-link
	) {
	display: none !important;
}
.portfolio-reader-page-controls {
	display: flex;
	align-items: center;
	gap: 9px;
}
.portfolio-reader-page-controls button {
	width: 34px;
	height: 34px;
	border: 1px solid #52667f37;
	border-radius: 6px;
	background: #fff;
	color: #23466c;
	cursor: pointer;
	font-size: 15px;
}
.portfolio-reader-page-controls button:disabled {
	opacity: 0.4;
	cursor: default;
}
.portfolio-reader-page-controls label {
	display: flex;
	align-items: center;
	gap: 8px;
}
.portfolio-reader-page-controls input {
	height: 34px;
	width: 48px;
	text-align: center;
	border: 1px solid #52667f37;
	border-radius: 5px;
	background: white;
	color: #23466c;
	font-size: 11px;
}
.portfolio-zoom-label {
	display: flex;
	align-items: center;
	gap: 8px;
}
.portfolio-zoom-label select {
	font-family: inherit;
	font-size: 10px;
	color: #23466c;
	border: 1px solid #52667f37;
	border-radius: 5px;
	background: white;
	padding: 8px;
	height: 34px;
}
.portfolio-reader-viewport {
	flex: 1;
	min-height: 0;
	overflow: auto;
	padding: 20px;
	background: #d3e3fc;
	overscroll-behavior: contain;
}
.portfolio-reader-viewport:has(iframe:not([hidden])) {
	padding: 0;
	background: #d3e3fc;
}
.portfolio-page-image {
	display: block;
	width: 100%;
	max-width: none;
	height: auto;
	box-shadow: 0 4px 16px #0b244525;
	margin: 0 auto;
	background: #f0f5ff;
	min-height: 140px;
}
.portfolio-reader-viewport iframe {
	width: 100%;
	height: 100%;
	min-height: 220px;
	border: 0;
	background: #f0f5ff;
}
.portfolio-reader-caption {
	padding: 10px 18px;
	background: #f7f9fd;
	flex-shrink: 0;
	border-top: 1px solid #23466c26;
}
.portfolio-reader-caption h3 {
	font-size: 11px;
	font-weight: 500;
	margin: 0 0 4px;
	line-height: 1.5;
	color: #23466c;
}
.portfolio-reader-caption p {
	font-size: 9px;
	line-height: 1.6;
	color: #6d89ad;
	margin: 0;
}
.portfolio-page-transcript {
	flex-shrink: 0;
	max-height: 32%;
	overflow: auto;
	background: #e6efff;
	padding: 0 18px;
}
.portfolio-page-transcript summary {
	font-size: 10px;
	line-height: 1.6;
	padding: 10px 0;
	color: #52667f;
	cursor: pointer;
	min-height: 36px;
}
.portfolio-page-transcript pre {
	white-space: pre-wrap;
	font-family: inherit;
	font-size: 11px;
	line-height: 1.9;
	color: #23466c;
	margin: 5px 0 18px;
}
.purpose-studio a:focus-visible,
.partner-choice:focus-visible,
.partner-detail:focus-visible,
.portfolio-studio a:focus-visible,
.portfolio-reader button:focus-visible,
.portfolio-reader a:focus-visible,
.portfolio-reader input:focus-visible,
.portfolio-reader select:focus-visible,
.portfolio-reader-viewport:focus-visible {
	outline: 3px solid #6d89ad;
	outline-offset: 4px;
}
@media (min-width: 1440px) {
	.purpose-visual {
		min-height: 590px;
	}
	.portfolio-book-stage {
		min-height: 670px;
	}
	.portfolio-book {
		width: 365px;
	}
}
@media (max-width: 980px) {
	.purpose-workspace {
		grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr);
	}
	.purpose-core {
		width: 145px;
		height: 145px;
	}
	.purpose-core img {
		width: 105px;
	}
	.partner-console {
		padding: 22px 18px;
	}
	.partner-detail {
		padding: 20px;
	}
	.purpose-visual-caption {
		left: 20px;
	}
	.purpose-visual-caption b {
		font-size: 19px;
	}
	.portfolio-showcase {
		gap: 35px;
	}
	.portfolio-book-stage {
		min-height: 550px;
	}
	.portfolio-book {
		width: 78%;
	}
	.portfolio-chapter {
		padding-inline: 18px;
	}
	.portfolio-chapter h3 {
		font-size: 14px;
	}
	.portfolio-reader-body {
		grid-template-columns: 180px minmax(0, 1fr);
	}
}
@media (max-width: 680px) {
	.home-page .purpose-partners.purpose-studio {
		padding-block: 30px 40px;
	}
	.purpose-topline {
		margin-bottom: 30px;
		padding-bottom: 21px;
		font-size: 7px;
		line-height: 1.8;
		letter-spacing: 0.08em;
	}
	.purpose-topline > span:last-child {
		display: none;
	}
	.purpose-studio .partners-heading {
		display: block;
		margin-bottom: 30px;
	}
	.home-page .purpose-studio .partners-heading h2 {
		font-size: clamp(48px, 12vw, 68px);
	}
	.purpose-studio .partners-heading h2 br {
		display: block;
	}
	.purpose-studio .partners-heading-copy {
		margin-top: 24px;
		max-width: 100%;
	}
	.purpose-studio .partners-heading-copy p {
		font-size: 14px;
	}
	.purpose-workspace {
		grid-template-columns: minmax(0, 1fr);
		border-radius: 20px;
	}
	.purpose-visual {
		min-height: 355px;
	}
	.purpose-core {
		width: 145px;
		height: 145px;
	}
	.purpose-orbit {
		width: 60%;
		height: 66%;
	}
	.orbit-a,
	.orbit-b {
		width: 86%;
		height: 46%;
	}
	.purpose-visual-index {
		font-size: 25px;
		top: 22px;
		left: 24px;
	}
	.purpose-visual-caption {
		left: 24px;
		bottom: 20px;
	}
	.purpose-visual-caption b {
		font-size: 20px;
	}
	.purpose-visual-caption {
		font-size: 7px;
	}
	.partner-console {
		border-left: 0;
		border-top: 1px solid #d3e3fc1c;
		padding: 22px;
	}
	.partner-selector {
		gap: 5px;
	}
	.partner-choice {
		font-size: 12px;
		padding: 12px;
	}
	.partner-detail {
		margin-top: 17px;
	}
	.partner-detail h3 {
		font-size: 24px;
	}
	.purpose-studio .partners-bottom {
		display: block;
	}
	.purpose-studio .partners-bottom > p {
		font-size: 11px;
	}
	.purpose-studio .partners-bottom > p span {
		font-size: 9px;
		max-width: 100%;
		line-height: 1.8;
	}
	.purpose-studio .partners-evidence-link {
		font-size: 11px;
		justify-content: space-between;
		border-top: 1px solid #bdd8ff28;
		padding-top: 15px;
		margin-top: 17px;
	}
	.home-page .evidence-section.portfolio-studio {
		padding-block: 30px 45px;
	}
	.portfolio-topline {
		margin-bottom: 32px;
		padding-bottom: 21px;
		font-size: 7px;
		line-height: 1.7;
		letter-spacing: 0.08em;
	}
	.portfolio-topline > span:last-child {
		display: none;
	}
	.portfolio-showcase {
		grid-template-columns: minmax(0, 1fr);
		gap: 25px;
	}
	.home-page .portfolio-studio .evidence-intro h2 {
		font-size: clamp(46px, 11.8vw, 66px);
	}
	.portfolio-studio .evidence-intro p {
		font-size: 15px;
	}
	.portfolio-primary-actions .portfolio-read {
		font-size: 13px;
	}
	.portfolio-book-stage {
		min-height: 520px;
		max-width: 420px;
		width: 100%;
		margin: auto;
	}
	.portfolio-book {
		width: 65%;
		max-width: 300px;
	}
	.portfolio-book-caption {
		font-size: 6px;
	}
	.portfolio-chapter-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		margin-top: 25px;
		border-radius: 15px;
	}
	.portfolio-chapter {
		padding: 23px 19px 53px;
		min-height: 177px;
	}
	.portfolio-chapter:nth-child(3) {
		border-left: 0;
	}
	.portfolio-chapter:nth-child(n + 3) {
		border-top: 1px solid #23466c22;
	}
	.portfolio-chapter h3 {
		font-size: 16px;
		margin-top: 15px;
	}
	.portfolio-source-strip {
		display: grid;
		grid-template-columns: 44px minmax(0, 1fr);
		gap: 15px;
		padding: 21px;
		border-radius: 15px;
	}
	.portfolio-source-symbol {
		width: 42px;
		height: 57px;
		font-size: 23px;
	}
	.portfolio-source-strip h3 {
		font-size: 14px;
	}
	.portfolio-source-strip p {
		font-size: 10px !important;
	}
	.portfolio-source-actions {
		grid-column: 1/-1;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: space-between;
		gap: 0 18px;
		padding-top: 11px;
		border-top: 1px solid #52667f2a;
	}
	.portfolio-source-actions > a {
		font-size: 10px;
	}
	.portfolio-data-link {
		font-size: 11px;
	}
	.portfolio-data-link small {
		font-size: 9px;
	}
	.portfolio-reader {
		width: calc(100vw - 12px) !important;
		height: calc(100dvh - 12px);
		border-radius: 12px !important;
	}
	.portfolio-reader-header {
		padding: 13px 16px;
	}
	.portfolio-reader-header h2 {
		font-size: 16px !important;
	}
	.portfolio-reader-header > div:first-child > span {
		font-size: 7px;
	}
	.portfolio-reader-header button span {
		display: none;
	}
	.portfolio-document-tabs {
		padding: 10px 12px;
		gap: 4px;
	}
	.portfolio-document-tabs button {
		font-size: 10px;
		gap: 7px;
		padding-inline: 9px;
	}
	.portfolio-document-tabs button > span {
		font-size: 7px;
	}
	.portfolio-document-tabs > a {
		font-size: 10px;
		margin-left: 5px;
		gap: 5px;
	}
	.portfolio-reader-body {
		grid-template-columns: minmax(0, 1fr);
	}
	.portfolio-reader-sidebar {
		display: none;
	}
	.portfolio-reader-toolbar {
		padding: 8px 10px;
		gap: 8px;
		font-size: 9px;
	}
	.portfolio-reader-page-controls {
		gap: 6px;
	}
	.portfolio-reader-page-controls label {
		gap: 5px;
	}
	.portfolio-reader-page-controls button {
		height: 32px;
		width: 32px;
	}
	.portfolio-zoom-label {
		gap: 5px;
	}
	.portfolio-zoom-label select {
		font-size: 9px;
		width: 78px;
		height: 32px;
		padding: 6px;
	}
	.portfolio-reader-viewport {
		padding: 10px;
	}
	.portfolio-reader-caption {
		padding: 9px 12px;
	}
	.portfolio-reader-caption p {
		font-size: 8px;
	}
	.portfolio-reader-caption h3 {
		font-size: 10px;
	}
	.portfolio-page-transcript {
		padding-inline: 12px;
	}
}
@media (max-width: 360px) {
	.portfolio-book-stage {
		min-height: 445px;
	}
	.portfolio-document-tabs button > span {
		display: none;
	}
	.portfolio-document-tabs > a {
		margin-left: auto;
	}
	.portfolio-reader-header h2 {
		font-size: 14px !important;
	}
	.portfolio-primary-actions .portfolio-read {
		width: 100%;
		justify-content: space-between;
	}
	.portfolio-download {
		font-size: 11px;
	}
	.portfolio-chapter {
		padding-inline: 15px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.portfolio-book,
	.portfolio-chapter,
	.portfolio-chapter > b,
	.partner-choice,
	.partner-choice > i {
		transition: none !important;
	}
	.portfolio-book:hover,
	.portfolio-book:focus-visible {
		transform: rotateY(-17deg) rotateZ(2deg);
	}
	.partner-choice:hover > i,
	.portfolio-chapter:hover > b {
		transform: none;
	}
}
@media (forced-colors: active) {
	.partner-choice,
	.partner-detail,
	.purpose-workspace,
	.portfolio-chapter,
	.portfolio-source-strip,
	.portfolio-reader,
	.purpose-core {
		border: 1px solid ButtonText;
	}
	.purpose-visual {
		background: Canvas;
	}
	.purpose-orbit {
		border-color: CanvasText;
	}
	.portfolio-book-halo {
		display: none;
	}
}
.portfolio-mobile-chapters {
	display: none;
}
.portfolio-native-fallback {
	display: none;
}
@media (max-width: 680px) {
	.portfolio-mobile-chapters {
		display: flex;
		align-items: center;
		gap: 7px;
		width: 100%;
		font-size: 9px;
	}
	.portfolio-mobile-chapters select {
		min-width: 0;
		flex: 1;
		height: 32px;
		font-size: 10px;
		font-family: inherit;
		border: 1px solid #52667f37;
		border-radius: 5px;
		padding: 6px;
		color: #23466c;
		background: #fff;
	}
	.portfolio-native-fallback {
		display: inline-flex;
		align-items: center;
		gap: 12px;
		color: #23466c;
		font-size: 9px;
		min-height: 30px;
		margin-top: 4px;
	}
}
.report-portfolio-actions {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}
.report-portfolio-actions .button {
	font-size: 12px;
}
@media (max-width: 680px) {
	.report-portfolio-actions {
		width: 100%;
	}
	.report-portfolio-actions .button {
		flex: 1;
		justify-content: center;
		min-width: 120px;
	}
}
