	.ric-culture {
		--ric-paper: #f6f2e9;
		--ric-paper-deep: #ebe3d3;
		--ric-ink: #263238;
		--ric-ink-soft: #536067;
		--ric-dai: #2e3941;
		--ric-azurite: #315b73;
		--ric-celadon: #9db9b3;
		--ric-malachite: #3f7258;
		--ric-ochre: #86583e;
		--ric-lilac: #a78d9d;
		--ric-gamboge: #d5a23c;
		--ric-line: rgba(46, 57, 65, 0.22);
		--ric-line: color-mix(in srgb, var(--ric-dai) 22%, transparent);
		--ric-shadow: 0 1.5rem 4rem rgba(46, 57, 65, 0.12);
		box-sizing: border-box;
		width: min(100%, 90rem);
		margin: clamp(2rem, 6vw, 6rem) auto;
		padding: clamp(1.25rem, 4vw, 4rem);
		color: var(--ric-ink);
		font-family: ui-serif, Charter, "Iowan Old Style", "Palatino Linotype", Georgia, serif;
		line-height: 1.65;
		background:
			linear-gradient(90deg, transparent 49.7%, rgba(134, 88, 62, 0.035) 50%, transparent 50.3%),
			radial-gradient(circle at 15% 12%, rgba(157, 185, 179, 0.16), transparent 28rem),
			var(--ric-paper);
		border: 1px solid var(--ric-line);
		isolation: isolate;
	}

	.ric-culture,
	.ric-culture *,
	.ric-culture *::before,
	.ric-culture *::after {
		box-sizing: border-box;
	}

	.ric-culture :where(h2, h3, p, figure, blockquote) {
		margin-block-start: 0;
	}

	.ric-culture h2 {
		max-width: 16ch;
		margin-block-end: 1rem;
		font-size: clamp(2.15rem, 7vw, 5.8rem);
		font-weight: 520;
		line-height: 0.98;
		letter-spacing: -0.045em;
		text-wrap: balance;
	}

	.ric-culture h3 {
		margin-block-end: 0.5rem;
		font-size: clamp(1.15rem, 2vw, 1.45rem);
		line-height: 1.2;
	}

	.ric-culture a {
		color: var(--ric-azurite);
		text-decoration-thickness: 0.08em;
		text-underline-offset: 0.22em;
	}

	.ric-culture :where(a, button, summary, select):focus-visible {
		outline: 3px solid var(--ric-azurite);
		outline-offset: 4px;
	}

	.ric-culture__header {
		display: grid;
		gap: 0.25rem;
		margin-block-end: clamp(2rem, 5vw, 4.5rem);
	}

	.ric-culture__eyebrow,
	.ric-culture__kicker,
	.ric-atlas-card__status,
	.ric-route__theme {
		font-family: ui-sans-serif, system-ui, sans-serif;
		font-size: 0.74rem;
		font-weight: 720;
		line-height: 1.3;
		letter-spacing: 0.13em;
		text-transform: uppercase;
	}

	.ric-culture__eyebrow {
		margin-block-end: clamp(1.5rem, 4vw, 3rem);
		color: var(--ric-ochre);
	}

	.ric-culture__lede {
		max-width: 62ch;
		margin-block-end: 0;
		font-size: clamp(1.05rem, 2.2vw, 1.32rem);
		color: var(--ric-ink-soft);
	}

	.ric-culture__note,
	.ric-culture__method {
		max-width: 72ch;
		margin-block-start: 2rem;
		padding: 1rem 1.15rem;
		font-family: ui-sans-serif, system-ui, sans-serif;
		font-size: 0.88rem;
		line-height: 1.55;
		background: rgba(157, 185, 179, 0.19);
		background: color-mix(in srgb, var(--ric-celadon) 19%, transparent);
		border-inline-start: 0.25rem solid var(--ric-celadon);
	}

	.ric-culture--atlas {
		padding: 0;
		overflow: hidden;
	}

	.ric-atlas__hero {
		position: relative;
		min-height: min(78vh, 50rem);
		padding: clamp(2rem, 7vw, 7rem) clamp(1.25rem, 6vw, 6rem);
		color: #f7f3eb;
		background:
			linear-gradient(115deg, rgba(46, 57, 65, 0.98), rgba(49, 91, 115, 0.88)),
			var(--ric-dai);
		overflow: hidden;
	}

	.ric-atlas__hero::after {
		position: absolute;
		right: -12rem;
		bottom: -9rem;
		width: min(60vw, 42rem);
		aspect-ratio: 1;
		content: "";
		border: clamp(2rem, 5vw, 5rem) solid rgba(213, 162, 60, 0.08);
		border-radius: 50%;
	}

	.ric-atlas__hero h2 {
		position: relative;
		z-index: 1;
		max-width: 11ch;
	}

	.ric-atlas__hero .ric-culture__eyebrow {
		position: relative;
		z-index: 1;
		color: #ebcf91;
	}

	.ric-atlas__hero .ric-culture__lede {
		position: relative;
		z-index: 1;
		color: rgba(247, 243, 235, 0.82);
	}

	.ric-atlas__horizon {
		position: absolute;
		inset: 0;
		pointer-events: none;
	}

	.ric-atlas__horizon span {
		position: absolute;
		right: -6%;
		left: 38%;
		height: 1px;
		background: linear-gradient(90deg, transparent, rgba(247, 243, 235, 0.34), transparent);
		transform: rotate(-7deg);
	}

	.ric-atlas__horizon span:nth-child(1) { top: 26%; }
	.ric-atlas__horizon span:nth-child(2) { top: 39%; transform: rotate(4deg); }
	.ric-atlas__horizon span:nth-child(3) { top: 56%; transform: rotate(-2deg); }

	.ric-atlas__jump {
		position: relative;
		z-index: 2;
		display: flex;
		flex-wrap: wrap;
		gap: 0.75rem 1.5rem;
		margin-block-start: clamp(2rem, 6vw, 5rem);
		font-family: ui-sans-serif, system-ui, sans-serif;
		font-size: 0.9rem;
	}

	.ric-atlas__jump a {
		min-height: 2.75rem;
		padding-block: 0.65rem;
		color: #f7f3eb;
	}

	.ric-atlas__jump a::after {
		margin-inline-start: 0.5rem;
		content: "↘";
	}

	.ric-atlas__intro,
	.ric-atlas__grid,
	.ric-culture--atlas > .ric-culture__method {
		margin-inline: clamp(1.25rem, 6vw, 6rem);
	}

	.ric-atlas__intro {
		display: grid;
		grid-template-columns: minmax(8rem, 0.5fr) minmax(0, 1.5fr);
		gap: 1rem clamp(2rem, 7vw, 7rem);
		padding-block: clamp(3rem, 7vw, 6rem);
		border-block-end: 1px solid var(--ric-line);
	}

	.ric-atlas__intro p:last-child {
		max-width: 58ch;
		font-size: clamp(1.1rem, 2.6vw, 1.55rem);
	}

	.ric-atlas__grid {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		border-inline-start: 1px solid var(--ric-line);
	}

	.ric-atlas-card {
		position: relative;
		display: grid;
		grid-template-rows: 4rem 1fr;
		min-height: 19rem;
		padding: clamp(1rem, 2.4vw, 2rem);
		border-inline-end: 1px solid var(--ric-line);
		border-block-end: 1px solid var(--ric-line);
		transition: color 180ms ease, background-color 180ms ease;
	}

	.ric-atlas-card:hover {
		color: #f7f3eb;
		background: var(--ric-dai);
	}

	.ric-atlas-card__motif {
		position: relative;
		display: block;
		width: 3rem;
		height: 3rem;
		border: 1px solid currentColor;
		border-radius: 50% 50% 12% 50%;
		opacity: 0.5;
		transform: rotate(45deg);
	}

	.ric-atlas-card:nth-child(3n + 2) .ric-atlas-card__motif {
		border-radius: 0;
		clip-path: polygon(50% 0, 100% 100%, 0 100%);
	}

	.ric-atlas-card:nth-child(3n) .ric-atlas-card__motif {
		border-radius: 50%;
		box-shadow: inset 0 0 0 0.65rem transparent, inset 0 0 0 0.72rem currentColor;
	}

	.ric-atlas-card__status {
		margin-block-end: 0.85rem;
		color: var(--ric-ochre);
	}

	.ric-atlas-card:hover .ric-atlas-card__status {
		color: #ebcf91;
	}

	.ric-atlas-card p:last-child {
		margin-block-end: 0;
		font-size: 0.94rem;
	}

	.ric-culture--atlas > .ric-culture__method {
		margin-block-end: clamp(2rem, 6vw, 5rem);
	}

	.ric-colors__controls {
		display: flex;
		align-items: end;
		gap: 0.75rem 1rem;
		margin-block-end: 1.25rem;
		font-family: ui-sans-serif, system-ui, sans-serif;
	}

	.ric-colors__controls[hidden] {
		display: none;
	}

	.ric-colors__controls label {
		font-size: 0.82rem;
		font-weight: 700;
	}

	.ric-colors__controls select {
		min-height: 2.75rem;
		padding: 0.5rem 2.5rem 0.5rem 0.75rem;
		color: var(--ric-ink);
		font: inherit;
		background: #fffdf8;
		border: 1px solid var(--ric-line);
		border-radius: 0;
	}

	.ric-colors__status {
		margin: 0 0 0 auto;
		font-size: 0.82rem;
		color: var(--ric-ink-soft);
	}

	.ric-colors__grid {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1px;
		background: var(--ric-line);
		border: 1px solid var(--ric-line);
	}

	.ric-color {
		background: #fffdf8;
	}

	.ric-color[hidden] {
		display: none;
	}

	.ric-color summary {
		display: grid;
		grid-template-columns: 4.5rem 1fr;
		gap: 1rem;
		align-items: center;
		min-height: 7rem;
		padding: 1rem;
		cursor: pointer;
		list-style: none;
	}

	.ric-color summary::-webkit-details-marker { display: none; }

	.ric-color summary::after {
		grid-column: 2;
		font-family: ui-sans-serif, system-ui, sans-serif;
		font-size: 0.75rem;
		content: "Open field note +";
		color: var(--ric-ink-soft);
	}

	.ric-color[open] summary::after { content: "Close field note −"; }

	.ric-color__swatch {
		display: block;
		width: 4.5rem;
		aspect-ratio: 1;
		background: var(--ric-swatch);
		border: 1px solid rgba(38, 50, 56, 0.16);
		border-radius: 50% 50% 10% 50%;
		transform: rotate(45deg);
	}

	.ric-color summary strong,
	.ric-color summary small {
		display: block;
	}

	.ric-color summary small {
		margin-block-start: 0.25rem;
		font-family: ui-sans-serif, system-ui, sans-serif;
		font-size: 0.76rem;
		color: var(--ric-ink-soft);
	}

	.ric-color__body {
		padding: 0 1.25rem 1.25rem;
	}

	.ric-color__body p {
		max-width: 56ch;
	}

	.ric-color__use {
		font-size: 0.88rem;
		color: var(--ric-ink-soft);
	}

	.ric-color__value {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		padding-block-start: 0.8rem;
		border-block-start: 1px solid var(--ric-line);
	}

	.ric-color__value code {
		font-family: ui-monospace, monospace;
		font-size: 0.9rem;
	}

	.ric-color__value button[hidden] {
		display: none;
	}

	.ric-color__value button {
		min-height: 2.75rem;
		padding: 0.55rem 0.9rem;
		color: #fff;
		font: 700 0.78rem/1 ui-sans-serif, system-ui, sans-serif;
		background: var(--ric-dai);
		border: 1px solid var(--ric-dai);
		cursor: pointer;
	}

	.ric-culture--silk-road {
		width: 100%;
		max-width: none;
		padding-inline: max(clamp(1.25rem, 6vw, 6rem), calc((100% - 90rem) / 2));
		color: #f7f3eb;
		background:
			radial-gradient(circle at 80% 8%, rgba(213, 162, 60, 0.18), transparent 26rem),
			linear-gradient(150deg, #24323a, #17242b);
		border-inline: 0;
	}

	.ric-silk-road__header .ric-culture__eyebrow,
	.ric-route__theme {
		color: #ebcf91;
	}

	.ric-silk-road__header .ric-culture__lede {
		color: rgba(247, 243, 235, 0.76);
	}

	.ric-route {
		position: relative;
		max-width: 76rem;
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.ric-route::before {
		position: absolute;
		top: 0;
		bottom: 0;
		left: 1.3rem;
		width: 1px;
		content: "";
		background: linear-gradient(#ebcf91, rgba(235, 207, 145, 0.12));
	}

	.ric-route__stop {
		position: relative;
		padding-inline-start: clamp(3.5rem, 8vw, 8rem);
	}

	.ric-curtain {
		border-block-start: 1px solid rgba(247, 243, 235, 0.18);
	}

	.ric-curtain summary {
		display: grid;
		grid-template-columns: 3.5rem minmax(0, 1fr) auto;
		gap: 0.75rem 1.25rem;
		align-items: center;
		min-height: 6.5rem;
		padding: 1rem 0;
		cursor: pointer;
		list-style: none;
	}

	.ric-curtain summary::-webkit-details-marker { display: none; }

	.ric-curtain summary strong,
	.ric-curtain summary small {
		display: block;
	}

	.ric-curtain summary strong {
		font-size: clamp(1.2rem, 2.6vw, 1.75rem);
	}

	.ric-curtain summary small,
	.ric-curtain__action {
		font-family: ui-sans-serif, system-ui, sans-serif;
		font-size: 0.76rem;
		color: rgba(247, 243, 235, 0.65);
	}

	.ric-route__number {
		font-family: ui-monospace, monospace;
		font-size: 0.78rem;
		color: #ebcf91;
	}

	.ric-curtain__action::after {
		margin-inline-start: 0.45rem;
		content: "+";
	}

	.ric-curtain[open] .ric-curtain__action::after { content: "−"; }

	.ric-curtain__stage {
		position: relative;
		overflow: hidden;
		min-height: 12rem;
		background:
			linear-gradient(90deg, rgba(157, 185, 179, 0.08), transparent),
			rgba(255, 255, 255, 0.035);
	}

	.ric-curtain__stage::before,
	.ric-curtain__stage::after {
		position: absolute;
		z-index: 2;
		top: 0;
		bottom: 0;
		width: 50.2%;
		content: "";
		pointer-events: none;
		background:
			repeating-linear-gradient(90deg, transparent 0 13%, rgba(255, 255, 255, 0.025) 13% 14%),
			linear-gradient(#663e31, #422c29);
		transition: transform 900ms cubic-bezier(0.22, 1, 0.36, 1);
	}

	.ric-curtain__stage::before { left: 0; transform-origin: left; }
	.ric-curtain__stage::after { right: 0; transform-origin: right; }
	.ric-curtain[open]:not(.ric-curtain--veiled) .ric-curtain__stage::before { transform: translateX(-102%); }
	.ric-curtain[open]:not(.ric-curtain--veiled) .ric-curtain__stage::after { transform: translateX(102%); }

	.ric-curtain__content {
		max-width: 56rem;
		padding: clamp(1.4rem, 4vw, 3.5rem);
	}

	.ric-curtain__content p:last-child {
		max-width: 60ch;
		margin-block-end: 0;
		font-size: clamp(1rem, 2vw, 1.25rem);
		color: rgba(247, 243, 235, 0.86);
	}

	.ric-culture--silk-road .ric-culture__method {
		color: rgba(247, 243, 235, 0.82);
		background: rgba(157, 185, 179, 0.09);
	}

	.ric-culture--poetry {
		position: relative;
	}

	.ric-culture--poetry::before {
		position: absolute;
		top: 2rem;
		right: 2rem;
		width: 8rem;
		aspect-ratio: 1;
		content: "";
		border: 1px solid rgba(134, 88, 62, 0.16);
		border-radius: 50%;
		box-shadow: inset 0 0 0 1.3rem var(--ric-paper), inset 0 0 0 1.35rem rgba(134, 88, 62, 0.16);
		pointer-events: none;
	}

	.ric-poem-curtain {
		color: #f7f3eb;
		background: var(--ric-dai);
		border: 0;
	}

	.ric-poem-curtain summary {
		grid-template-columns: 1fr auto;
		padding-inline: clamp(1.25rem, 4vw, 3rem);
	}

	.ric-poem-curtain summary > span {
		font-size: clamp(1.2rem, 3vw, 1.8rem);
	}

	.ric-poem-curtain__stage {
		min-height: clamp(22rem, 60vw, 38rem);
		background:
			radial-gradient(circle at 70% 20%, rgba(157, 185, 179, 0.22), transparent 24rem),
			#e8e2d5;
	}

	.ric-poem {
		display: grid;
		align-content: center;
		min-height: inherit;
		margin: 0;
		padding: clamp(2rem, 8vw, 7rem);
		color: var(--ric-dai);
	}

	.ric-poem blockquote {
		margin-block-end: 2rem;
		font-size: clamp(1.55rem, 4.5vw, 3.7rem);
		font-weight: 450;
		line-height: 1.35;
		letter-spacing: -0.025em;
	}

	.ric-poem figcaption {
		font-family: ui-sans-serif, system-ui, sans-serif;
		font-size: 0.82rem;
		line-height: 1.55;
		color: var(--ric-ink-soft);
	}

	.ric-poem-source {
		margin-block-start: 1rem;
		font-family: ui-sans-serif, system-ui, sans-serif;
		font-size: 0.88rem;
		border: 1px solid var(--ric-line);
	}

	.ric-poem-source summary {
		min-height: 3.25rem;
		padding: 0.8rem 1rem;
		font-weight: 700;
		cursor: pointer;
	}

	.ric-poem-source > div {
		padding: 0 1rem 1rem;
	}

	.ric-poem-source__text {
		font-size: clamp(1.2rem, 2.8vw, 1.8rem);
		line-height: 1.7;
	}

	@media (max-width: 800px) {
		.ric-atlas__intro,
		.ric-atlas__grid,
		.ric-colors__grid {
			grid-template-columns: 1fr;
		}

		.ric-atlas__grid {
			border-block-start: 1px solid var(--ric-line);
		}

		.ric-atlas-card {
			min-height: 15rem;
		}

		.ric-colors__controls {
			align-items: stretch;
			flex-direction: column;
		}

		.ric-colors__status {
			margin-inline-start: 0;
		}
	}

	@media (max-width: 560px) {
		.ric-culture {
			margin-block: 1.5rem;
			padding: 1.25rem;
		}

		.ric-culture--atlas { padding: 0; }
		.ric-atlas__intro { grid-template-columns: 1fr; }
		.ric-atlas__jump { flex-direction: column; align-items: flex-start; }
		.ric-color summary { grid-template-columns: 3.5rem 1fr; }
		.ric-color__swatch { width: 3.5rem; }
		.ric-curtain summary { grid-template-columns: 2rem minmax(0, 1fr); }
		.ric-curtain__action { grid-column: 2; }
		.ric-route__stop { padding-inline-start: 2.8rem; }
		.ric-culture--poetry::before { display: none; }
		.ric-poem-curtain summary { grid-template-columns: 1fr; }
	}

	@media (prefers-reduced-motion: reduce) {
		.ric-culture *,
		.ric-culture *::before,
		.ric-culture *::after {
			scroll-behavior: auto !important;
			transition-duration: 0.001ms !important;
			animation-duration: 0.001ms !important;
			animation-iteration-count: 1 !important;
		}

		.ric-curtain[open] .ric-curtain__stage::before,
		.ric-curtain[open] .ric-curtain__stage::after {
			display: none;
		}
	}

	@media (forced-colors: active) {
		.ric-culture,
		.ric-culture--silk-road,
		.ric-atlas__hero,
		.ric-poem-curtain {
			color: CanvasText;
			background: Canvas;
		}

		.ric-atlas-card:hover,
		.ric-color__value button {
			color: HighlightText;
			background: Highlight;
		}

		.ric-curtain__stage::before,
		.ric-curtain__stage::after {
			display: none;
		}
	}
