/*
 * Initial Finds Interactive Assets — engine styles.
 * The instrument is the interface: persistent dial beside the interaction,
 * the reader's words carried in the site's editorial serif.
 * Tokens default to the IF Forward design sheet and soft-inherit Blocksy
 * globals where they exist. Deep Blue is the only color that asks for a
 * click; Calm Blue carries display accents; Sage appears only where
 * meaning appears. Fonts inherit from the page — the plugin loads none.
 */

.ifa-asset {
	/* Theme-independent Initial Finds semantic defaults. */
	--ifa-interactive: #3A5F94; /* Deep Blue: actions and focus only. */
	--ifa-display:     #507DBC; /* Calm Blue: display accents, never clicks. */
	--ifa-sage:        #729B79; /* Quiet meaning. */
	--ifa-border:      #C7BCA1; /* Taupe structure. */
	--ifa-paper:       #FAF8F2;
	--ifa-night:       #2A2D33;
	--ifa-body:        #4F4F4F;
	--ifa-ink:         #2A2A2A;

	--ifa-serif: "Cormorant Garamond", Georgia, serif;
	--ifa-radius: 3px;
	--ifa-ease: 150ms ease-out;
	--ifa-shadow-soft: 0 1px 2px rgba(42, 45, 51, 0.04), 0 4px 14px rgba(42, 45, 51, 0.05);
	--ifa-tint-blue: rgba(58, 95, 148, 0.05);
	--ifa-tint-sage: rgba(114, 155, 121, 0.10);
	--ifa-tint-taupe: rgba(199, 188, 161, 0.16);
	--ifa-hairline: rgba(199, 188, 161, 0.45);

	max-width: 860px;
	margin: 40px auto;
	padding: clamp(24px, 5vw, 48px);
	background: var(--ifa-paper);
	color: var(--ifa-body);
	border: 1px solid var(--ifa-border);
	border-radius: 4px;
	font-size: 17px;
	line-height: 1.7;
}

.ifa-asset *,
.ifa-asset *::before,
.ifa-asset *::after {
	box-sizing: border-box;
}

.ifa-asset h3,
.ifa-asset h4 {
	color: var(--ifa-ink);
	line-height: 1.25;
	margin: 0 0 12px;
}
.ifa-asset h4 { font-size: 1.05rem; font-weight: 600; }
.ifa-asset p { margin: 0 0 16px; }
.ifa-asset p:last-child { margin-bottom: 0; }

/* The editorial voice — the site's serif italic, never below 20px. */
.ifa-q {
	font-family: var(--ifa-serif);
	font-style: italic;
	font-weight: 500;
	font-size: clamp(1.35rem, 2.6vw, 1.7rem);
	line-height: 1.3;
	color: var(--ifa-ink);
	outline: none;
}
h3.ifa-q, h4.ifa-q { margin: 0 0 10px; }

/* ---- Restrained step motion: one fade-rise, disabled with reduced motion ---- */
@keyframes ifa-step-in {
	from { opacity: 0; transform: translateY(6px); }
	to   { opacity: 1; transform: none; }
}
.ifa-stage-holder > *,
.ifa-stage > * {
	animation: ifa-step-in 240ms ease-out backwards;
}

/* ---- Question-first answer layer (page content, works without JS) ---- */
.ifa-answer {
	padding-bottom: 28px;
	border-bottom: 1px solid var(--ifa-border);
	margin-bottom: 36px;
}
.ifa-query {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ifa-interactive);
	margin: 0 0 12px;
}
.ifa-answer h2 {
	font-family: var(--ifa-serif);
	font-style: italic;
	font-weight: 500;
	font-size: clamp(1.5rem, 3.5vw, 2.1rem);
	line-height: 1.3;
	color: var(--ifa-ink);
	margin: 0 0 12px;
}
.ifa-answer p:last-child { margin-bottom: 0; }

/* ---- The instrument layout: dial beside interaction ---- */
.ifa-instrument {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: 40px;
	align-items: start;
}
.ifa-dial-col { position: sticky; top: 24px; }

/* ---- The dial ---- */
.ifa-dial {
	display: block;
	width: 100%;
	height: auto;
	filter: drop-shadow(0 2px 8px rgba(42, 45, 51, 0.07));
}
.ifa-dial-ring { fill: #FFFFFF; stroke: var(--ifa-border); stroke-width: 1.5; }
.ifa-dial-ring-faint { fill: none; stroke-width: 1; opacity: 0.6; }
.ifa-dial-tick { stroke: var(--ifa-border); stroke-width: 1.5; }
.ifa-dial-tick-major { stroke: var(--ifa-body); stroke-width: 2; }
.ifa-dial-label {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.12em;
	fill: var(--ifa-body);
}
.ifa-needle {
	transform-origin: 140px 140px;
	transition: transform 500ms ease-out;
}
.ifa-needle-n { fill: var(--ifa-interactive); }
.ifa-needle-s { fill: var(--ifa-border); }
.ifa-dial-cap { fill: var(--ifa-paper); stroke: var(--ifa-ink); stroke-width: 1.5; }

.ifa-bearing {
	text-align: center;
	margin: 16px 0 0;
	line-height: 1.4;
}
.ifa-bearing-label {
	display: block;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ifa-display);
	margin-bottom: 2px;
}
.ifa-bearing strong {
	font-size: 15px;
	font-weight: 600;
	color: var(--ifa-ink);
}

/* ---- Stage ---- */
.ifa-eyebrow {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ifa-interactive);
	margin: 0 0 8px;
}
/* Step eyebrows (direct children of a stage) carry the family dash rule. */
.ifa-stage-holder > .ifa-eyebrow,
.ifa-stage > .ifa-eyebrow {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 10px;
}
.ifa-stage-holder > .ifa-eyebrow::before,
.ifa-stage > .ifa-eyebrow::before {
	content: "";
	width: 22px;
	height: 2px;
	background: var(--ifa-border);
	flex: none;
}
.ifa-help { font-size: 15.5px; }

/* Result-anatomy section rules: Evidence · Meaning · Next move · Limit. */
.ifa-stage-holder > h4,
.ifa-stage > h4 {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ifa-body);
	margin: 30px 0 12px;
}
.ifa-stage-holder > h4::after,
.ifa-stage > h4::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--ifa-hairline);
}

/* ---- Buttons ---- */
.ifa-btn {
	display: inline-block;
	font: inherit;
	font-size: 16px;
	font-weight: 600;
	padding: 11px 26px;
	border-radius: var(--ifa-radius);
	border: 1px solid var(--ifa-interactive);
	background: var(--ifa-interactive);
	color: var(--ifa-paper);
	cursor: pointer;
	transition: background var(--ifa-ease), color var(--ifa-ease), border-color var(--ifa-ease), box-shadow var(--ifa-ease);
}
.ifa-btn:hover {
	background: #2E4C77;
	border-color: #2E4C77;
	color: var(--ifa-paper);
	box-shadow: var(--ifa-shadow-soft);
}
.ifa-btn:active { box-shadow: none; }

.ifa-btn--quiet {
	background: transparent;
	color: var(--ifa-interactive);
	box-shadow: none;
}
.ifa-btn--quiet:hover {
	background: rgba(58, 95, 148, 0.08);
	border-color: var(--ifa-interactive);
	color: var(--ifa-interactive);
	box-shadow: none;
}

.ifa-btn:focus-visible,
.ifa-choice:focus-visible,
.ifa-asset a:focus-visible,
.ifa-asset input:focus-visible,
.ifa-asset textarea:focus-visible {
	outline: 2px solid var(--ifa-interactive);
	outline-offset: 2px;
}

/* ---- Choices: refined cards, not form rows ---- */
.ifa-choices {
	display: grid;
	gap: 10px;
	margin: 20px 0;
	padding: 0;
	list-style: none;
}
.ifa-choice {
	position: relative;
	display: block;
	width: 100%;
	text-align: left;
	font: inherit;
	font-size: 15.5px;
	line-height: 1.55;
	padding: 15px 18px;
	background: #FFFFFF;
	border: 1px solid var(--ifa-border);
	border-radius: var(--ifa-radius);
	color: var(--ifa-body);
	cursor: pointer;
	transition: border-color var(--ifa-ease), background var(--ifa-ease), box-shadow var(--ifa-ease);
}
.ifa-choice:hover {
	border-color: var(--ifa-interactive);
	box-shadow: var(--ifa-shadow-soft);
}
.ifa-choice[aria-pressed="true"] {
	border: 2px solid var(--ifa-interactive);
	padding: 14px 34px 14px 17px;
	background: var(--ifa-tint-blue);
	color: var(--ifa-ink);
}
/* Selection is never color-only: a mark accompanies the border. */
.ifa-choice[aria-pressed="true"]::after {
	content: "✓";
	position: absolute;
	top: 12px;
	right: 12px;
	color: var(--ifa-interactive);
	font-weight: 700;
	line-height: 1;
}
.ifa-route strong { color: var(--ifa-ink); font-weight: 600; }

.ifa-asset input[type="text"],
.ifa-asset input[type="email"],
.ifa-asset textarea {
	display: block;
	width: 100%;
	font: inherit;
	font-size: 16px;
	padding: 11px 14px;
	background: #FFFFFF;
	color: var(--ifa-ink);
	border: 1px solid var(--ifa-border);
	border-radius: var(--ifa-radius);
	margin: 0 0 16px;
	transition: border-color var(--ifa-ease);
}
.ifa-asset input[type="text"]:hover,
.ifa-asset input[type="email"]:hover,
.ifa-asset textarea:hover { border-color: var(--ifa-body); }
.ifa-asset label {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: var(--ifa-ink);
	margin-bottom: 8px;
}

/* ---- Footer row of each step ---- */
.ifa-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin-top: 28px;
}

/* ---- The compass card: a keepsake, their words in the serif voice ---- */
.ifa-card {
	background: #FFFFFF;
	border: 1px solid var(--ifa-border);
	border-radius: var(--ifa-radius);
	padding: 24px 28px;
	margin: 20px 0;
	box-shadow: var(--ifa-shadow-soft);
}
.ifa-compass-card { border-top: 3px solid var(--ifa-display); }
.ifa-card dl { margin: 0; }
.ifa-card dt {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ifa-interactive);
	margin: 18px 0 2px;
}
.ifa-card dt:first-child { margin-top: 0; }
.ifa-card dd {
	margin: 0;
	font-family: var(--ifa-serif);
	font-style: italic;
	font-weight: 500;
	font-size: 20px;
	line-height: 1.4;
	color: var(--ifa-ink);
}
.ifa-card dd.is-unset {
	font-family: inherit;
	font-size: 14px;
	font-style: italic;
	color: var(--ifa-body);
}

/* ---- Result ---- */
.ifa-evidence {
	border-left: 2px solid var(--ifa-sage);
	padding: 4px 0 4px 18px;
	margin: 0 0 24px;
}
.ifa-evidence ul { margin: 0; padding: 0; list-style: none; }
.ifa-evidence li { margin-bottom: 8px; font-size: 15.5px; }
.ifa-evidence .ifa-ev-k { font-weight: 600; color: var(--ifa-ink); }
.ifa-evidence em,
.ifa-stage em {
	font-family: var(--ifa-serif);
	font-style: italic;
	font-size: 1.12em;
	color: var(--ifa-ink);
}

.ifa-limit {
	font-size: 14px;
	color: var(--ifa-body);
	border-top: 1px solid var(--ifa-border);
	padding-top: 16px;
	margin-top: 28px;
}

.ifa-privacy {
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--ifa-body);
	text-align: center;
	margin: 16px auto 0;
	max-width: 240px;
}

/* ---- Status / error messages ---- */
.ifa-status { min-height: 1.5em; font-size: 15px; }
.ifa-status.is-error { color: #8A3B2E; font-weight: 600; }
.ifa-status.is-ok    { color: var(--ifa-sage); font-weight: 600; }

/* ---- Go deeper trail ---- */
.ifa-deeper {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	padding-top: 24px;
	border-top: 1px solid var(--ifa-border);
	margin-top: 36px;
}
.ifa-deeper > span {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ifa-body);
	margin-right: 8px;
}
.ifa-deeper a {
	display: inline-block;
	font-size: 15px;
	font-weight: 600;
	color: var(--ifa-interactive);
	text-decoration: none;
	padding: 6px 14px;
	border: 1px solid var(--ifa-border);
	border-radius: var(--ifa-radius);
	transition: border-color var(--ifa-ease), background var(--ifa-ease);
}
.ifa-deeper a:hover {
	border-color: var(--ifa-interactive);
	background: var(--ifa-tint-blue);
}

/* ---- Fallback (visible only when the script doesn't run) ---- */
.ifa-fallback h3 { font-size: 1.3rem; font-weight: 700; }

/* ---- Substrate contract disclosure ---- */
.ifa-contract-note {
	margin-top: 20px;
	font-size: 12.5px;
	line-height: 1.55;
	color: var(--ifa-body);
}

/* ---- Shared result evidence ledger ---- */
.ifia-result-evidence {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0 24px;
	margin: 16px 0 28px;
	padding: 4px 20px;
	background: #FFFFFF;
	border: 1px solid var(--ifa-border);
	border-radius: var(--ifa-radius);
	box-shadow: var(--ifa-shadow-soft);
}
.ifia-result-evidence dt {
	color: var(--ifa-ink);
	font-weight: 600;
	padding: 12px 0;
	border-top: 1px solid var(--ifa-hairline);
}
.ifia-result-evidence dd {
	margin: 0;
	padding: 12px 0;
	text-align: right;
	border-top: 1px solid var(--ifa-hairline);
}
.ifia-result-evidence dt:first-of-type,
.ifia-result-evidence dd:first-of-type { border-top: none; }
.ifia-next-move {
	padding: 18px 20px;
	background: var(--ifa-tint-sage);
	border-left: 3px solid var(--ifa-sage);
	border-radius: 0 var(--ifa-radius) var(--ifa-radius) 0;
	color: var(--ifa-ink);
}

/* ---- Life Load Lab ---- */
.ifia-load-choices {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin: 20px 0 24px;
}
.ifia-load-choices .ifa-choice { height: 100%; }
.ifia-inline-entry {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px;
	align-items: start;
}
.ifia-inline-entry .ifa-btn { white-space: nowrap; }

.ifia-weight-list,
.ifia-action-list {
	display: grid;
	gap: 12px;
	margin: 22px 0;
}
.ifia-weight-row {
	display: grid;
	grid-template-columns: minmax(160px, 1fr) minmax(150px, 1fr) 32px;
	gap: 16px;
	align-items: center;
	padding: 14px 16px;
	background: #FFFFFF;
	border: 1px solid var(--ifa-border);
	border-radius: var(--ifa-radius);
}
.ifia-weight-row label { margin: 0; }
.ifia-weight-row input[type="range"] { accent-color: var(--ifa-interactive); }
.ifia-weight-row output {
	font-weight: 700;
	color: var(--ifa-ink);
	text-align: center;
}

/* Before / after: the redistribution at a glance. Bars are display, not clicks. */
.ifia-load-visual { margin: 20px 0 26px; }
.ifia-load-row {
	display: grid;
	grid-template-columns: 58px minmax(0, 1fr) 32px;
	gap: 12px;
	align-items: center;
	margin-bottom: 8px;
}
.ifia-load-name {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ifa-body);
}
.ifia-load-value {
	font-weight: 700;
	font-size: 14px;
	color: var(--ifa-ink);
	text-align: right;
}
.ifia-load-track {
	height: 14px;
	overflow: hidden;
	background: var(--ifa-tint-taupe);
	border: 1px solid var(--ifa-border);
	border-radius: 999px;
}
.ifia-load-fill {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: var(--ifa-display);
	transition: width 220ms ease-out;
}
.ifia-load-fill.is-before { background: var(--ifa-border); }
.ifia-load-fill.is-after { background: var(--ifa-display); }
.ifia-load-visual p {
	margin: 10px 0 0;
	font-size: 14px;
}

.ifia-action-card {
	margin: 0;
	padding: 16px;
	background: #FFFFFF;
	border: 1px solid var(--ifa-border);
	border-radius: var(--ifa-radius);
}
.ifia-action-card legend {
	padding: 0 6px;
	font-weight: 600;
	color: var(--ifa-ink);
}
.ifia-action-buttons {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
}
.ifia-action-buttons label {
	position: relative;
	margin: 0;
	padding: 11px 8px;
	text-align: center;
	cursor: pointer;
	border: 1px solid var(--ifa-border);
	border-radius: var(--ifa-radius);
	transition: border-color var(--ifa-ease), background var(--ifa-ease);
}
.ifia-action-buttons label:hover { border-color: var(--ifa-interactive); }
.ifia-action-buttons label:has(input:checked) {
	border: 2px solid var(--ifa-interactive);
	padding: 10px 7px;
	background: var(--ifa-tint-blue);
}
.ifia-action-buttons input {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}
.ifia-action-buttons label:focus-within {
	outline: 2px solid var(--ifa-interactive);
	outline-offset: 2px;
}

/* ---- Context Alignment Map ---- */
.ifia-context-choices {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin: 16px 0 28px;
}
.ifa-choice > strong {
	display: block;
	color: var(--ifa-ink);
	font-weight: 600;
}
.ifa-choice > span {
	display: block;
	margin-top: 4px;
	font-size: 13.5px;
	line-height: 1.45;
	color: var(--ifa-body);
}
.ifia-context-comparison {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin: 22px 0;
}
.ifia-context-card {
	padding: 18px;
	background: #FFFFFF;
	border: 1px solid var(--ifa-border);
	border-top: 3px solid var(--ifa-display);
	border-radius: var(--ifa-radius);
	box-shadow: var(--ifa-shadow-soft);
}
.ifia-context-card h4 { margin-bottom: 8px; }
.ifia-context-card > p:not(.ifa-eyebrow) {
	font-family: var(--ifa-serif);
	font-style: italic;
	font-size: 18px;
	line-height: 1.45;
	color: var(--ifa-ink);
}
.ifia-quality-choices {
	display: grid;
	gap: 8px;
	margin-top: 18px;
}
.ifia-quality-choices .ifa-choice {
	padding: 11px 12px;
	font-size: 14px;
}
.ifia-quality-choices .ifa-choice[aria-pressed="true"] {
	padding: 10px 30px 10px 11px;
}
.ifia-quality-choices .ifa-choice[aria-pressed="true"]::after { top: 10px; right: 10px; }

/* The same-situation thread visibly stitches the two context cards together. */
.ifia-context-map {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	gap: 14px;
	align-items: center;
	margin: 18px 0 26px;
}
.ifia-context-map .ifia-context-card { align-self: stretch; }
.ifia-context-thread {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 150px;
	padding: 12px 14px;
	text-align: center;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--ifa-ink);
	background: #FFFFFF;
	border: 1px dashed var(--ifa-border);
	border-radius: var(--ifa-radius);
}
.ifia-context-thread::before,
.ifia-context-thread::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 14px;
	border-top: 1px dashed var(--ifa-border);
}
.ifia-context-thread::before { left: -15px; }
.ifia-context-thread::after { right: -15px; }

/* ---- Orientation Map ---- */
.ifia-situation-tag {
	display: inline-block;
	margin: 0 0 12px;
	padding: 5px 10px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ifa-interactive);
	background: #FFFFFF;
	border: 1px solid var(--ifa-border);
	border-radius: var(--ifa-radius);
}
.ifia-orientation-choices {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin: 18px 0 28px;
}
.ifia-orientation-choices .ifa-choice {
	height: 100%;
	text-align: left;
}

/* The field: a surveyed ground the three markers sit on. */
.ifia-orientation-field {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin: 20px 0 28px;
	padding: 14px;
	border: 1px solid var(--ifa-border);
	border-radius: 4px;
	background-color: rgba(255, 255, 255, 0.4);
	background-image: radial-gradient(rgba(199, 188, 161, 0.55) 1px, transparent 1px);
	background-size: 16px 16px;
}
.ifia-orientation-zone {
	min-height: 150px;
	padding: 16px;
	background: #FFFFFF;
	border: 1px solid var(--ifa-border);
	border-top: 3px solid var(--ifa-border);
	border-radius: var(--ifa-radius);
	box-shadow: var(--ifa-shadow-soft);
}
.ifia-orientation-zone.is-supported {
	border-top-color: var(--ifa-sage);
	background: rgba(114, 155, 121, 0.06);
}
.ifia-orientation-zone > strong {
	display: block;
	margin-bottom: 18px;
	font-family: var(--ifa-serif);
	font-size: 22px;
	font-style: italic;
	font-weight: 500;
	color: var(--ifa-ink);
}
.ifia-orientation-marker {
	display: block;
	margin-top: 7px;
	padding: 7px 9px;
	font-size: 12px;
	font-weight: 600;
	color: var(--ifa-ink);
	background: #FFFFFF;
	border: 1px solid var(--ifa-hairline);
	border-left: 3px solid var(--ifa-sage);
	border-radius: var(--ifa-radius);
	box-shadow: var(--ifa-shadow-soft);
}
.ifia-orientation-open {
	grid-column: 1 / -1;
	margin: 0;
	padding: 10px 12px;
	font-size: 13px;
	color: var(--ifa-body);
	background: rgba(255, 255, 255, 0.7);
	border: 1px dashed var(--ifa-border);
	border-radius: var(--ifa-radius);
}
.ifia-rule-note {
	margin: 14px 0 24px;
	padding: 12px 14px;
	font-size: 13px;
	line-height: 1.5;
	color: var(--ifa-body);
	background: var(--ifa-tint-taupe);
	border-left: 2px solid var(--ifa-border);
	border-radius: 0 var(--ifa-radius) var(--ifa-radius) 0;
}

/* ---- Belief Origins Map ---- */
.ifia-belief-choices,
.ifia-belief-table,
.ifia-studio-choices,
.ifia-style-choices {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin: 18px 0 28px;
}
.ifia-belief-choices .ifa-choice,
.ifia-belief-table .ifa-choice,
.ifia-studio-choices .ifa-choice,
.ifia-style-choices .ifa-choice {
	height: 100%;
	text-align: left;
}

/* The belief under examination: a specimen card on the table. */
.ifia-belief-card {
	margin: 16px 0 24px;
	padding: 20px 24px;
	background: #FFFFFF;
	border: 1px solid var(--ifa-border);
	border-left: 3px solid var(--ifa-display);
	border-radius: var(--ifa-radius);
	box-shadow: var(--ifa-shadow-soft);
}
.ifia-belief-card p {
	margin: 0;
	font-family: var(--ifa-serif);
	font-size: 22px;
	font-style: italic;
	line-height: 1.4;
	color: var(--ifa-ink);
}

/* Initial → final placement: the movement (or deliberate staying) made visible. */
.ifia-belief-trail {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	gap: 12px;
	align-items: center;
	margin: 18px 0 28px;
}
.ifia-belief-trail span {
	padding: 16px 14px;
	text-align: center;
	font-weight: 600;
	color: var(--ifa-ink);
	background: #FFFFFF;
	border: 1px solid var(--ifa-border);
	border-radius: var(--ifa-radius);
	box-shadow: var(--ifa-shadow-soft);
}
/* The living placement is where the belief now rests. */
.ifia-belief-trail span:last-child { border-top: 3px solid var(--ifa-sage); }
.ifia-belief-trail b {
	padding: 6px 12px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--ifa-body);
	background: var(--ifa-tint-taupe);
	border-radius: 999px;
	text-align: center;
}

/* ---- Quiet Authority Studio ---- */
.ifia-studio-part {
	margin: 18px 0 24px;
	padding: 16px 18px 2px;
	background: #FFFFFF;
	border: 1px solid var(--ifa-border);
	border-radius: var(--ifa-radius);
}
.ifia-studio-part label { margin-bottom: 2px; }
.ifia-studio-part .ifa-help { margin-bottom: 10px; }

/* Style tabs sit on the rehearsal card like tabs on a script binder. */
.ifia-style-tabs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 6px;
	margin: 18px 0 0;
	position: relative;
	z-index: 1;
}
.ifia-style-tabs .ifa-choice {
	padding: 11px 8px;
	text-align: center;
	font-size: 13px;
	background: transparent;
	border-radius: var(--ifa-radius) var(--ifa-radius) 0 0;
	border-bottom-color: var(--ifa-border);
}
.ifia-style-tabs .ifa-choice span { display: none; }
.ifia-style-tabs .ifa-choice[aria-pressed="true"] {
	padding: 11px 8px;
	border: 1px solid var(--ifa-border);
	border-bottom-color: #FFFFFF;
	background: #FFFFFF;
	box-shadow: inset 0 3px 0 var(--ifa-interactive);
	color: var(--ifa-ink);
}
.ifia-style-tabs .ifa-choice[aria-pressed="true"]::after {
	position: static;
	display: inline;
	margin-left: 6px;
}
.ifia-rehearsal-card {
	margin: -1px 0 26px;
	padding: 24px 26px;
	background: #FFFFFF;
	border: 1px solid var(--ifa-border);
	border-radius: 0 0 var(--ifa-radius) var(--ifa-radius);
	box-shadow: var(--ifa-shadow-soft);
}
.ifia-rehearsal-card > p:not(.ifa-eyebrow) {
	margin: 10px 0;
	font-family: var(--ifa-serif);
	font-size: 20px;
	font-style: italic;
	line-height: 1.45;
	color: var(--ifa-ink);
}

/* ---- Motion & small screens ---- */
/* ---- Go deeper: the one open door after a result ---- */
.ifia-deeper {
	margin-top: 36px;
	border-top: 3px solid var(--ifa-sage);
	background: var(--ifa-paper);
}
.ifia-deeper h4 { margin: 0 0 8px; }
.ifia-deeper > p { margin: 0 0 16px; }
.ifia-deeper-row {
	display: flex;
	gap: 8px;
	align-items: stretch;
	flex-wrap: wrap;
}
.ifa-asset .ifia-deeper-row input[type="email"] {
	flex: 1 1 220px;
	width: auto;
	margin: 0;
}
.ifia-deeper-row .ifa-btn { white-space: nowrap; }
.ifa-asset label.ifia-deeper-check {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-weight: 500;
	margin: 14px 0 6px;
	cursor: pointer;
}
.ifia-deeper-check input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin-top: 2px;
	flex: 0 0 auto;
	accent-color: var(--ifa-interactive);
}
.ifa-asset .ifia-deeper-fine { font-size: 14px; color: var(--ifa-body); margin: 8px 0; }
.ifia-deeper .ifa-status a { color: var(--ifa-interactive); }
.ifia-deeper .ifa-status:empty { min-height: 0; margin: 0; }
.ifa-asset .ifia-deeper-link { margin: 12px 0 0; }
.ifia-deeper-link a {
	color: var(--ifa-interactive);
	font-weight: 600;
	text-underline-offset: 3px;
}
.ifia-deeper-link a:focus-visible,
.ifia-deeper-check input:focus-visible {
	outline: 2px solid var(--ifa-interactive);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	.ifa-asset * { transition: none !important; animation: none !important; }
}

@media (max-width: 680px) {
	.ifa-asset { padding: 20px; margin: 24px auto; }
	.ifa-instrument { grid-template-columns: 1fr; gap: 24px; }
	.ifa-dial-col { position: static; }
	.ifa-dial { max-width: 230px; margin: 0 auto; }
	.ifa-card { padding: 18px 20px; }
	.ifa-nav { flex-direction: column; align-items: stretch; }
	.ifa-nav .ifa-btn { width: 100%; text-align: center; }
	.ifia-load-choices,
	.ifia-action-buttons,
	.ifia-context-choices,
	.ifia-context-comparison,
	.ifia-context-map,
	.ifia-orientation-choices,
	.ifia-orientation-field,
	.ifia-belief-choices,
	.ifia-belief-table,
	.ifia-studio-choices,
	.ifia-style-choices,
	.ifia-style-tabs,
	.ifia-belief-trail { grid-template-columns: 1fr; }
	.ifia-inline-entry,
	.ifia-weight-row { grid-template-columns: 1fr; }
	.ifia-weight-row output { text-align: left; }
	.ifia-result-evidence { grid-template-columns: 1fr; gap: 0; padding: 4px 16px; }
	.ifia-result-evidence dt { padding-bottom: 2px; }
	.ifia-result-evidence dd {
		text-align: left;
		border-top: none;
		padding-top: 0;
	}
	.ifia-context-thread { max-width: none; }
	.ifia-context-thread::before,
	.ifia-context-thread::after {
		top: auto;
		left: 50%;
		width: 0;
		height: 14px;
		border-top: none;
		border-left: 1px dashed var(--ifa-border);
	}
	.ifia-context-thread::before { top: -15px; }
	.ifia-context-thread::after { bottom: -15px; }
	/* Tabs stack on phones: revert to plain stacked choices. */
	.ifia-style-tabs { gap: 8px; margin-bottom: 12px; z-index: auto; }
	.ifia-style-tabs .ifa-choice {
		background: #FFFFFF;
		border-radius: var(--ifa-radius);
		border-bottom-color: var(--ifa-border);
	}
	.ifia-style-tabs .ifa-choice[aria-pressed="true"] {
		border: 2px solid var(--ifa-interactive);
		border-bottom-color: var(--ifa-interactive);
		padding: 10px 7px;
		background: var(--ifa-tint-blue);
		box-shadow: none;
	}
	.ifia-rehearsal-card { margin-top: 0; border-radius: var(--ifa-radius); }
	.ifia-load-row { grid-template-columns: 52px minmax(0, 1fr) 28px; }
}
