:root {
	--jht-paper: #f4f0e7;
	--jht-ink: #202823;
	--jht-green: #285244;
	--jht-vermilion: #b45a43;
	--jht-brass: #9b8050;
	--jht-paper-line: #d8d1c5;
	--jht-white: #fffaf0;
	--jht-muted: #5f665f;
	--jht-max: 1180px;
	--jht-reading: 760px;
	--jht-copy: 42rem;
	--jht-gap: clamp(1rem, 2.4vw, 2rem);
	--jht-section: clamp(3.5rem, 8vw, 7.5rem);
	--jht-radius: 8px;
	--jht-border: 1px solid rgba(32, 40, 35, 0.18);
	--jht-shadow: 0 20px 60px rgba(32, 40, 35, 0.08);
	--jht-fast: 180ms;
	--jht-slow: 720ms;
	--jht-ease: cubic-bezier(.22, .61, .36, 1);
	--jht-z-nav: 50;
	--jht-z-drawer: 60;
	--jht-indigo: #273a5a;
	--jht-celadon: #7f9b8d;
	--jht-porcelain: #f8fbf7;
	--jht-paper-deep: #ebe2d2;
	--jht-focus: #d7a442;
	--jht-rise: cubic-bezier(.16, 1, .3, 1);
}

body.jht-experience {
	background: var(--jht-paper);
	color: var(--jht-ink);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
	line-height: 1.75;
	font-kerning: normal;
	font-synthesis: none;
}

.jht-site-shell,
.jht-site-shell * {
	box-sizing: border-box;
}

.jht-site-shell {
	background:
		radial-gradient(circle at 12% 8%, rgba(180, 90, 67, .08), transparent 28%),
		radial-gradient(circle at 88% 18%, rgba(155, 128, 80, .1), transparent 26%),
		linear-gradient(180deg, rgba(255, 250, 240, .56), rgba(244, 240, 231, .92)),
		var(--jht-paper);
	color: var(--jht-ink);
	font-size: 16px;
	overflow-x: clip;
}

.jht-site-shell :where(h1, h2, h3, h4, p, li, dt, dd, a, span) {
	letter-spacing: 0;
}

.jht-site-shell :where(p, li, dd) {
	line-break: strict;
	overflow-wrap: break-word;
	text-wrap: pretty;
}

.jht-shell {
	width: min(var(--jht-max), calc(100% - 2rem));
	margin-inline: auto;
}

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

.jht-skip-link {
	position: fixed;
	left: 1rem;
	top: .75rem;
	z-index: 999;
	transform: translateY(-150%);
	background: var(--jht-ink);
	color: var(--jht-paper);
	padding: .7rem 1rem;
	border-radius: var(--jht-radius);
}

.jht-skip-link:focus {
	transform: translateY(0);
}

.jht-site-header {
	position: sticky;
	top: 0;
	z-index: var(--jht-z-nav);
	background: rgba(244, 240, 231, .94);
	border-bottom: var(--jht-border);
	backdrop-filter: blur(8px);
}

.jht-nav-shell {
	display: grid;
	grid-template-columns: auto 1fr auto auto;
	gap: 1.25rem;
	align-items: center;
	min-height: 78px;
}

.jht-brand {
	display: inline-grid;
	grid-template-columns: 64px minmax(0, auto);
	gap: .9rem;
	align-items: center;
	color: var(--jht-ink);
	text-decoration: none;
	min-width: 0;
	max-width: min(52vw, 430px);
}

.jht-brand-mark {
	display: inline-grid;
	place-items: center;
	width: 64px;
	height: 64px;
	border-radius: 6px;
	background: transparent;
	box-shadow: none;
	overflow: visible;
	line-height: 0;
}

.jht-brand-mark img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.jht-brand-name {
	display: block;
	font-family: "Songti SC", "STSong", "Noto Serif CJK SC", serif;
	font-size: 1.22rem;
	font-weight: 700;
	line-height: 1.2;
}

.jht-brand-kicker {
	display: block;
	color: var(--jht-muted);
	font-size: .78rem;
	line-height: 1.3;
	margin-top: .15rem;
}

.jht-primary-nav {
	display: flex;
	justify-content: flex-end;
	gap: clamp(.5rem, 1.5vw, 1.4rem);
	align-items: center;
}

.jht-primary-nav a,
.jht-footer-links a {
	position: relative;
	color: var(--jht-ink);
	text-decoration: none;
	font-size: .95rem;
}

.jht-primary-nav a::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	bottom: -.35rem;
	height: 2px;
	background: var(--jht-vermilion);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--jht-fast) var(--jht-ease);
}

.jht-primary-nav a:hover::after,
.jht-primary-nav a:focus-visible::after {
	transform: scaleX(1);
}

.jht-language-switcher {
	justify-self: end;
	margin: 0;
}

.jht-language-switcher label {
	display: block;
}

.jht-language-switcher select {
	min-height: 42px;
	min-width: 7.2rem;
	border: 1px solid rgba(32, 40, 35, .24);
	border-radius: var(--jht-radius);
	background: rgba(255, 250, 240, .8);
	color: var(--jht-ink);
	padding: 0 .75rem;
	font: inherit;
	font-size: .9rem;
}

.jht-language-submit {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.jht-nav-cta,
.jht-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: .7rem 1rem;
	border-radius: var(--jht-radius);
	border: 1px solid var(--jht-green);
	background: var(--jht-green);
	color: var(--jht-paper);
	text-decoration: none;
	font-weight: 700;
	line-height: 1.2;
	transition: transform var(--jht-fast) var(--jht-ease), background-color var(--jht-fast) var(--jht-ease), color var(--jht-fast) var(--jht-ease);
}

.jht-nav-cta:hover,
.jht-button:hover,
.jht-nav-cta:focus-visible,
.jht-button:focus-visible {
	background: var(--jht-ink);
	color: var(--jht-paper);
	transform: translateY(-1px);
}

.jht-button-secondary {
	background: transparent;
	color: var(--jht-green);
}

.jht-button-row {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	margin-top: 2rem;
}

.jht-menu-toggle {
	display: none;
	width: 44px;
	height: 44px;
	border: var(--jht-border);
	border-radius: var(--jht-radius);
	background: transparent;
	color: var(--jht-ink);
}

.jht-menu-lines,
.jht-menu-lines::before,
.jht-menu-lines::after {
	display: block;
	width: 22px;
	height: 2px;
	background: currentColor;
	margin: auto;
	position: relative;
}

.jht-menu-lines::before,
.jht-menu-lines::after {
	content: "";
	position: absolute;
	left: 0;
}

.jht-menu-lines::before { top: -7px; }
.jht-menu-lines::after { top: 7px; }

.jht-main {
	min-height: 60vh;
}

.jht-hero {
	padding: clamp(3rem, 7vw, 6rem) 0 var(--jht-section);
	position: relative;
	overflow: clip;
}

.jht-hero-grid {
	display: grid;
	grid-template-columns: minmax(0, .92fr) minmax(320px, .78fr);
	gap: clamp(2rem, 6vw, 5rem);
	align-items: center;
}

.jht-eyebrow,
.jht-card-type,
.jht-section-number {
	color: var(--jht-vermilion);
	font-size: .82rem;
	font-weight: 700;
	text-transform: uppercase;
	line-height: 1.4;
}

.jht-hero h1,
.jht-page-intro h1,
.jht-section-heading h2,
.jht-feature-band h2,
.jht-story h2,
.jht-inquiry-cta h2,
.jht-prose h2 {
	font-family: "Songti SC", "STSong", "Noto Serif CJK SC", serif;
	line-height: 1.18;
	font-weight: 700;
	color: var(--jht-ink);
}

.jht-hero h1 {
	font-size: 4.8rem;
	max-width: 9em;
	margin: .65rem 0 0;
	letter-spacing: 0;
}

.jht-hero h1:lang(zh),
.jht-hero h1:lang(ja),
.jht-hero h1:lang(ko) {
	max-width: 6.5em;
}

.jht-lede {
	max-width: 46rem;
	font-size: 1.18rem;
	line-height: 1.8;
	color: #39423c;
	margin-top: 1.25rem;
}

.jht-brand-line {
	color: var(--jht-muted);
	font-size: .9rem;
	margin-top: 2rem;
}

.jht-phrase-strip {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-top: 1.5rem;
}

.jht-phrase-strip span {
	border: 1px solid rgba(40, 82, 68, .28);
	background: rgba(255, 250, 240, .48);
	border-radius: 999px;
	padding: .36rem .7rem;
	color: var(--jht-green);
	font-size: .9rem;
}

.jht-hero-art {
	position: relative;
	display: grid;
	place-items: center;
	min-height: clamp(320px, 42vw, 560px);
	padding: clamp(1rem, 2vw, 1.5rem);
}

.jht-hero-logo-image {
	display: block;
	width: min(76%, 430px);
	max-height: min(58vh, 560px);
	height: auto;
	object-fit: contain;
	filter: drop-shadow(0 22px 34px rgba(32, 40, 35, .14));
}

.jht-section {
	padding: var(--jht-section) 0;
	border-top: var(--jht-border);
}

.jht-section-ink {
	background: #ece6da;
}

.jht-section-rice-paper {
	background:
		linear-gradient(180deg, rgba(255, 250, 240, .55), rgba(236, 230, 218, .72)),
		repeating-linear-gradient(0deg, rgba(216, 209, 197, .22) 0 1px, transparent 1px 34px);
}

.jht-section-heading {
	display: grid;
	grid-template-columns: 44px minmax(0, 760px);
	gap: clamp(.85rem, 2vw, 1.4rem);
	align-items: start;
	width: min(100%, 860px);
	margin-bottom: clamp(1.75rem, 4vw, 3rem);
}

.jht-section-heading h2,
.jht-page-intro h1 {
	font-size: 3rem;
	margin: 0;
}

.jht-section-heading p:last-child {
	margin: .85rem 0 0;
	color: var(--jht-muted);
	font-size: 1.02rem;
	line-height: 1.8;
	max-width: var(--jht-copy);
}

.jht-dual-grid,
.jht-card-grid,
.jht-list-grid,
.jht-about-grid,
.jht-feature-band,
.jht-story,
.jht-wechat-cta,
.jht-contact-layout,
.jht-article-layout {
	display: grid;
	gap: var(--jht-gap);
}

.jht-dual-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.jht-language-culture-grid {
	display: grid;
	grid-template-columns: .78fr 1.22fr;
	gap: clamp(1.5rem, 4vw, 3rem);
	align-items: start;
}

.jht-language-orbit {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	border: var(--jht-border);
	border-radius: var(--jht-radius);
	background: rgba(32, 40, 35, .16);
	overflow: hidden;
	box-shadow: var(--jht-shadow);
}

.jht-language-node {
	background: rgba(255, 250, 240, .68);
	padding: clamp(1rem, 2.4vw, 1.65rem);
	min-height: 210px;
	display: grid;
	align-content: space-between;
}

.jht-language-index {
	font-family: Georgia, serif;
	color: var(--jht-brass);
	font-size: 1.8rem;
	line-height: 1;
}

.jht-language-node h3 {
	margin: 1.2rem 0 .5rem;
	font-family: "Songti SC", "STSong", serif;
	font-size: 1.65rem;
}

.jht-language-node small {
	display: block;
	margin-top: .15rem;
	color: var(--jht-vermilion);
	font-family: Georgia, serif;
	font-size: .9rem;
	font-weight: 400;
}

.jht-compass-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	border: var(--jht-border);
	border-radius: var(--jht-radius);
	background: rgba(32, 40, 35, .16);
	overflow: hidden;
}

.jht-compass-item {
	min-height: 190px;
	padding: clamp(1rem, 2.4vw, 1.55rem);
	background: rgba(244, 240, 231, .86);
	position: relative;
}

.jht-compass-item::before {
	content: "";
	position: absolute;
	left: 1rem;
	top: 1rem;
	width: 24px;
	height: 2px;
	background: var(--jht-vermilion);
}

.jht-compass-item h3 {
	margin: 2.1rem 0 .7rem;
	font-family: "Songti SC", "STSong", serif;
	font-size: 1.35rem;
}

.jht-editor-panel,
.jht-card,
.jht-empty-state,
.jht-wechat-cta,
.jht-inquiry-cta,
.jht-inquiry-form,
.jht-feature-band,
.jht-story,
.jht-topic-link,
.jht-aside-quote {
	border: var(--jht-border);
	border-radius: var(--jht-radius);
	background: rgba(255, 250, 240, .55);
}

.jht-editor-panel,
.jht-card,
.jht-empty-state,
.jht-inquiry-cta,
.jht-inquiry-form,
.jht-topic-link,
.jht-aside-quote {
	padding: clamp(1.25rem, 2.8vw, 2rem);
}

.jht-editor-panel {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	grid-auto-flow: row;
	column-gap: clamp(1rem, 2.4vw, 1.75rem);
	row-gap: .45rem;
	align-items: start;
	align-content: start;
	min-height: 250px;
}

.jht-editor-panel > :not(.jht-panel-index) {
	grid-column: 2;
	min-width: 0;
}

.jht-panel-index {
	grid-column: 1;
	grid-row: 1 / span 6;
	font-family: Georgia, serif;
	font-size: 2rem;
	line-height: 1;
	color: var(--jht-brass);
	border-top: 2px solid currentColor;
	padding-top: .55rem;
}

.jht-editor-panel h2,
.jht-editor-panel h3,
.jht-card h3 {
	font-family: "Songti SC", "STSong", serif;
	font-size: 1.55rem;
	margin: .1rem 0 .55rem;
	line-height: 1.32;
	text-wrap: balance;
}

.jht-editor-panel p,
.jht-card p,
.jht-empty-state p,
.jht-feature-band p,
.jht-story p,
.jht-inquiry-cta p,
.jht-wechat-cta p {
	max-width: var(--jht-copy);
	margin: 0;
	color: #465049;
	font-size: 1rem;
	line-height: 1.82;
}

.jht-editor-panel :where(ul, ol) {
	margin: .35rem 0 0;
	padding-inline-start: 1.25rem;
	line-height: 1.82;
}

.jht-card-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.jht-list-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.jht-card {
	position: relative;
	min-height: 230px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	box-shadow: var(--jht-shadow);
}

.jht-card > :where(div, header, footer) {
	min-width: 0;
}

.jht-card a {
	color: inherit;
	text-decoration: none;
}

.jht-card:hover a,
.jht-card:focus-within a {
	color: var(--jht-green);
}

.jht-meta-list {
	display: grid;
	gap: .65rem;
	margin: 1rem 0;
}

.jht-meta-list div {
	display: grid;
	grid-template-columns: 5.5rem minmax(0, 1fr);
	gap: .5rem;
}

.jht-meta-list dt {
	color: var(--jht-muted);
}

.jht-meta-list dd {
	margin: 0;
}

.jht-text-link {
	color: var(--jht-green);
	font-weight: 700;
	text-underline-offset: .2em;
}

.jht-card-footer {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	color: var(--jht-muted);
	font-size: .86rem;
	margin-top: 1.25rem;
	border-top: var(--jht-border);
	padding-top: .8rem;
}

.jht-feature-band,
.jht-story,
.jht-wechat-cta,
.jht-contact-layout,
.jht-article-layout {
	grid-template-columns: .8fr 1.2fr;
	padding: clamp(1.5rem, 4vw, 3rem);
	align-items: start;
}

.jht-timeline {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	padding: 0;
	margin: 0;
	list-style: none;
	border: var(--jht-border);
	background: rgba(32, 40, 35, .16);
	border-radius: var(--jht-radius);
	overflow: hidden;
}

.jht-timeline li {
	background: var(--jht-paper);
	padding: 1.2rem;
	min-height: 120px;
}

.jht-timeline span {
	display: block;
	font-family: Georgia, serif;
	color: var(--jht-vermilion);
	margin-bottom: .8rem;
}

.jht-page-intro {
	padding: clamp(3rem, 7vw, 6rem) 0;
	background: #ece6da;
	border-bottom: var(--jht-border);
}

.jht-page-intro .jht-lede {
	max-width: 50rem;
}

.jht-topic-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: .8rem;
	margin-bottom: 2rem;
}

.jht-topic-link {
	display: flex;
	justify-content: space-between;
	align-items: center;
	color: var(--jht-ink);
	text-decoration: none;
	min-height: 82px;
}

.jht-topic-link small {
	color: var(--jht-muted);
}

.jht-qr-frame {
	display: grid;
	place-items: center;
	justify-self: end;
}

.jht-qr-frame img,
.jht-qr-empty {
	width: min(240px, 100%);
	aspect-ratio: 1;
	border: var(--jht-border);
	border-radius: var(--jht-radius);
	background: var(--jht-paper);
}

.jht-qr-empty {
	display: grid;
	place-items: center;
	color: var(--jht-muted);
	background:
		linear-gradient(45deg, transparent 46%, rgba(40, 82, 68, .18) 48%, rgba(40, 82, 68, .18) 52%, transparent 54%),
		var(--jht-paper);
}

.jht-inquiry-form {
	display: grid;
	gap: .9rem;
}

.jht-inquiry-form label {
	display: grid;
	gap: .35rem;
	font-weight: 700;
}

.jht-inquiry-form input,
.jht-inquiry-form select,
.jht-inquiry-form textarea {
	width: 100%;
	border: 1px solid rgba(32, 40, 35, .32);
	border-radius: var(--jht-radius);
	background: var(--jht-white);
	color: var(--jht-ink);
	padding: .75rem .85rem;
	font: inherit;
}

.jht-checkbox {
	display: flex !important;
	grid-template-columns: auto 1fr;
	align-items: flex-start;
	font-weight: 400 !important;
}

.jht-checkbox input {
	width: auto;
	margin-top: .35rem;
}

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

.jht-form-status {
	padding: .75rem 1rem;
	border-radius: var(--jht-radius);
}

.jht-form-success {
	background: rgba(40, 82, 68, .12);
	border: 1px solid rgba(40, 82, 68, .34);
}

.jht-form-error {
	background: rgba(180, 90, 67, .12);
	border: 1px solid rgba(180, 90, 67, .34);
}

.jht-prose {
	max-width: var(--jht-reading);
}

.jht-prose > * + * {
	margin-top: 1rem;
}

.jht-prose p,
.jht-prose li {
	font-size: 1.04rem;
	line-height: 1.92;
}

.jht-prose blockquote,
.jht-aside-quote {
	border-left: 4px solid var(--jht-brass);
	padding-left: 1.1rem;
	color: #39423c;
}

.jht-sidebar {
	position: sticky;
	top: 100px;
}

.jht-faq {
	display: grid;
	gap: .8rem;
	margin-bottom: 2rem;
}

.jht-faq details {
	border: var(--jht-border);
	border-radius: var(--jht-radius);
	background: rgba(255, 250, 240, .48);
	padding: 1rem;
}

.jht-faq summary {
	cursor: pointer;
	font-weight: 700;
}

.jht-site-footer {
	padding: clamp(2.25rem, 5vw, 4rem) 0 1.5rem;
	border-top: var(--jht-border);
	background: #202823;
	color: var(--jht-muted);
	position: relative;
	overflow: hidden;
}

.jht-footer-grid {
	display: grid;
	grid-template-columns: minmax(260px, 1.25fr) minmax(150px, .7fr) minmax(170px, .75fr) minmax(260px, 1.05fr);
	gap: var(--jht-gap);
	align-items: start;
}

.jht-footer-brand-block,
.jht-footer-legal {
	border-top: 1px solid rgba(255, 250, 240, .18);
	padding-top: 1rem;
}

.jht-footer-lockup {
	display: grid;
	grid-template-columns: 70px minmax(0, 1fr);
	gap: .9rem;
	align-items: center;
	margin-bottom: 1rem;
}

.jht-footer-mark {
	display: grid;
	place-items: center;
	width: 70px;
	height: 70px;
	line-height: 0;
}

.jht-footer-mark img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	filter: drop-shadow(0 12px 22px rgba(0, 0, 0, .18));
}

.jht-footer-brand {
	color: var(--jht-white);
	font-weight: 700;
	margin-bottom: .18rem !important;
}

.jht-footer-parent,
.jht-footer-note {
	font-size: .9rem;
}

.jht-footer-links {
	display: grid;
	gap: .45rem;
}

.jht-footer-links h2 {
	margin: 0 0 .7rem;
	color: var(--jht-white);
	font-family: "Songti SC", "STSong", serif;
	font-size: 1rem;
}

.jht-site-footer p {
	margin: 0 0 .7rem;
	color: rgba(255, 250, 240, .66);
}

.jht-site-footer a {
	color: rgba(255, 250, 240, .78);
	text-decoration-color: rgba(255, 250, 240, .3);
	text-underline-offset: .22em;
}

.jht-site-footer a:hover,
.jht-site-footer a:focus-visible {
	color: var(--jht-white);
}

.jht-footer-bottom {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin-top: clamp(1.5rem, 4vw, 2.5rem);
	padding-top: 1rem;
	border-top: 1px solid rgba(255, 250, 240, .16);
}

.jht-footer-bottom p {
	margin: 0;
	font-size: .88rem;
}

.jht-footer-legal {
	font-size: .92rem;
	color: rgba(255, 250, 240, .68);
}

.jht-footer-signature {
	color: var(--jht-white) !important;
	font-weight: 700;
	letter-spacing: .02em;
}

.jht-icp {
	color: rgba(255, 250, 240, .8) !important;
}

.jht-brand-signature {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	align-items: center;
	border-top: var(--jht-border);
	border-bottom: var(--jht-border);
	padding: 1rem 0;
	color: var(--jht-ink);
}

.jht-brand-signature span {
	color: var(--jht-muted);
}

.jht-reveal {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity var(--jht-slow) var(--jht-ease), transform var(--jht-slow) var(--jht-ease);
}

.jht-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* Visual system: scholar-paper texture, restrained motion, language-cultural art direction. */
.jht-site-shell {
	position: relative;
	background:
		linear-gradient(180deg, rgba(248, 251, 247, .7), rgba(244, 240, 231, .94) 48%, rgba(235, 226, 210, .9)),
		repeating-linear-gradient(135deg, rgba(32, 40, 35, .035) 0 1px, transparent 1px 26px),
		var(--jht-paper);
}

.jht-site-shell::before {
	content: "";
	position: fixed;
	right: clamp(1rem, 4vw, 4rem);
	top: 12vh;
	z-index: 0;
	width: clamp(110px, 16vw, 230px);
	height: min(76vh, 620px);
	background: url("../images/jinghuitang-wordmark-transparent.png") center / contain no-repeat;
	opacity: .036;
	pointer-events: none;
}

.jht-site-header,
.jht-main,
.jht-site-footer {
	position: relative;
	z-index: 1;
}

.jht-site-header {
	transition: background-color var(--jht-fast) var(--jht-ease), box-shadow var(--jht-fast) var(--jht-ease), min-height var(--jht-fast) var(--jht-ease);
}

.jht-site-header.is-scrolled {
	background: rgba(255, 250, 240, .9);
	box-shadow: 0 10px 30px rgba(32, 40, 35, .08);
}

.jht-brand-mark {
	transition: transform 420ms var(--jht-rise), box-shadow var(--jht-fast) var(--jht-ease);
}

.jht-brand:hover .jht-brand-mark,
.jht-brand:focus-visible .jht-brand-mark {
	box-shadow: none;
	transform: rotate(-4deg) scale(1.04);
}

.jht-brand-name {
	letter-spacing: 0;
}

.jht-primary-nav a {
	padding-block: .4rem;
}

.jht-primary-nav a::after {
	bottom: .08rem;
	height: 1px;
	background: linear-gradient(90deg, var(--jht-vermilion), var(--jht-brass));
}

.jht-language-switcher select {
	box-shadow: inset 0 0 0 1px rgba(255, 250, 240, .45);
	transition: border-color var(--jht-fast) var(--jht-ease), background-color var(--jht-fast) var(--jht-ease);
}

.jht-language-switcher select:hover,
.jht-language-switcher select:focus-visible {
	border-color: rgba(180, 90, 67, .6);
	background: var(--jht-white);
}

.jht-hero {
	min-height: calc(100vh - 78px);
	display: grid;
	align-items: center;
	padding-bottom: clamp(4rem, 7vw, 6rem);
}

.jht-hero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(32, 40, 35, .2), transparent);
}

.jht-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	letter-spacing: .08em;
}

.jht-eyebrow::before {
	content: "";
	width: 1.8rem;
	height: 1px;
	background: currentColor;
}

.jht-hero h1 {
	text-wrap: balance;
}

.jht-lede {
	text-wrap: pretty;
}

.jht-phrase-strip span,
.jht-button,
.jht-nav-cta {
	box-shadow: 0 1px 0 rgba(255, 250, 240, .55) inset;
}

.jht-phrase-strip span {
	border-radius: 999px;
	background: rgba(248, 251, 247, .66);
	backdrop-filter: blur(3px);
	transform: translateY(0);
	transition: transform var(--jht-fast) var(--jht-ease), border-color var(--jht-fast) var(--jht-ease), color var(--jht-fast) var(--jht-ease);
}

.jht-phrase-strip span:hover {
	border-color: rgba(180, 90, 67, .5);
	color: var(--jht-vermilion);
	transform: translateY(-2px);
}

.jht-hero-art {
	border: 0;
	background: transparent;
	box-shadow: none;
	padding: clamp(.8rem, 2vw, 1.1rem);
	transform: translate3d(calc(var(--jht-parallax-x, 0) * 1px), calc(var(--jht-parallax-y, 0) * 1px), 0);
	transition: transform 420ms var(--jht-rise);
}

.jht-hero-logo-art {
	isolation: isolate;
}

.jht-hero-logo-art::before {
	content: "";
	position: absolute;
	inset: 4% 8% 8%;
	border: 1px solid rgba(32, 40, 35, .1);
	border-radius: 50%;
	background:
		radial-gradient(circle at 50% 44%, rgba(255, 250, 240, .7), rgba(255, 250, 240, .26) 58%, transparent 72%),
		radial-gradient(circle at 53% 54%, rgba(180, 90, 67, .08), transparent 46%),
		repeating-linear-gradient(45deg, rgba(155, 128, 80, .05) 0 1px, transparent 1px 20px);
	box-shadow: 0 30px 80px rgba(32, 40, 35, .08);
	transform: rotate(-2deg);
}

.jht-hero-logo-art::after {
	content: "";
	position: absolute;
	left: 22%;
	right: 18%;
	bottom: 9%;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(155, 128, 80, .42), transparent);
}

.jht-hero-logo-image {
	position: relative;
	z-index: 1;
	animation: jhtLogoFloat 6.4s ease-in-out infinite;
	transform-origin: 50% 58%;
}

@keyframes jhtLogoFloat {
	0%, 100% { transform: translate3d(0, 0, 0) rotate(-1deg); }
	50% { transform: translate3d(0, -8px, 0) rotate(1.2deg); }
}

.jht-section {
	position: relative;
}

.jht-section-heading {
	position: relative;
}

.jht-section-number {
	display: block;
	width: 44px;
	height: auto;
	padding-top: .55rem;
	border: 0;
	border-top: 2px solid currentColor;
	color: var(--jht-vermilion);
	background: transparent;
	font-family: Georgia, "Times New Roman", serif;
	font-size: .82rem;
	font-variant-numeric: tabular-nums;
	line-height: 1;
	text-align: left;
}

.jht-wechat-cta-no-qr {
	grid-template-columns: minmax(0, 760px);
}

.jht-section-heading h2 {
	text-wrap: balance;
}

.jht-language-orbit,
.jht-compass-grid,
.jht-timeline {
	box-shadow: 0 24px 60px rgba(32, 40, 35, .07);
}

.jht-language-node,
.jht-compass-item,
.jht-timeline li {
	transition: transform 260ms var(--jht-rise), background-color 260ms var(--jht-ease), box-shadow 260ms var(--jht-ease);
}

.jht-language-node:hover,
.jht-compass-item:hover,
.jht-timeline li:hover {
	background: var(--jht-white);
	transform: translateY(-3px);
}

.jht-language-node:nth-child(2n) {
	background: rgba(248, 251, 247, .68);
}

.jht-language-node:nth-child(3) {
	background: rgba(235, 226, 210, .72);
}

.jht-language-index {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
}

.jht-language-index::after {
	content: "";
	width: 2.5rem;
	height: 1px;
	background: currentColor;
	opacity: .4;
}

.jht-card,
.jht-editor-panel,
.jht-empty-state,
.jht-inquiry-form,
.jht-inquiry-cta,
.jht-topic-link,
.jht-aside-quote {
	background:
		linear-gradient(180deg, rgba(255, 250, 240, .76), rgba(248, 251, 247, .5)),
		var(--jht-white);
	box-shadow: 0 14px 42px rgba(32, 40, 35, .055);
	transition: transform 260ms var(--jht-rise), box-shadow 260ms var(--jht-ease), border-color 260ms var(--jht-ease);
}

.jht-card::before,
.jht-editor-panel::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--jht-green), var(--jht-brass), var(--jht-vermilion));
	opacity: .78;
}

.jht-editor-panel {
	position: relative;
	overflow: hidden;
}

.jht-card {
	overflow: hidden;
}

.jht-card:hover,
.jht-card:focus-within,
.jht-editor-panel:hover,
.jht-topic-link:hover,
.jht-topic-link:focus-visible {
	border-color: rgba(40, 82, 68, .32);
	box-shadow: 0 26px 66px rgba(32, 40, 35, .1);
	transform: translateY(-4px);
}

.jht-button,
.jht-nav-cta {
	position: relative;
	overflow: hidden;
}

.jht-button::after,
.jht-nav-cta::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(110deg, transparent 0 34%, rgba(255, 250, 240, .22) 48%, transparent 62% 100%);
	transform: translateX(-120%);
	transition: transform 520ms var(--jht-rise);
}

.jht-button:hover::after,
.jht-button:focus-visible::after,
.jht-nav-cta:hover::after,
.jht-nav-cta:focus-visible::after {
	transform: translateX(120%);
}

.jht-button-secondary::after {
	background: linear-gradient(110deg, transparent 0 34%, rgba(40, 82, 68, .12) 48%, transparent 62% 100%);
}

.jht-feature-band,
.jht-story,
.jht-wechat-cta,
.jht-contact-layout,
.jht-article-layout {
	background:
		linear-gradient(180deg, rgba(255, 250, 240, .72), rgba(235, 226, 210, .62)),
		repeating-linear-gradient(135deg, rgba(32, 40, 35, .035) 0 1px, transparent 1px 22px);
	box-shadow: 0 24px 70px rgba(32, 40, 35, .07);
}

.jht-page-intro {
	background:
		linear-gradient(180deg, rgba(235, 226, 210, .94), rgba(244, 240, 231, .86)),
		repeating-linear-gradient(135deg, rgba(32, 40, 35, .04) 0 1px, transparent 1px 24px);
}

.jht-reveal {
	transition-delay: var(--jht-stagger, 0ms);
}

.jht-reveal[data-jht-reveal="fade-left"] {
	transform: translateX(-22px);
}

.jht-reveal[data-jht-reveal="fade-right"] {
	transform: translateX(22px);
}

.jht-reveal.is-visible {
	transform: translate3d(0, 0, 0);
}

.jht-site-footer {
	background:
		linear-gradient(180deg, #202823, #17201c),
		var(--jht-ink);
}

.jht-site-footer::before {
	content: "";
	position: absolute;
	right: clamp(-1.5rem, 2vw, 3rem);
	bottom: -12%;
	width: clamp(120px, 18vw, 250px);
	aspect-ratio: 514 / 1036;
	background: url("../images/jinghuitang-wordmark-transparent.png") center / contain no-repeat;
	filter: invert(1);
	opacity: .065;
	pointer-events: none;
}

.jht-site-footer > .jht-shell {
	position: relative;
	z-index: 1;
}

.jht-site-shell a:focus-visible,
.jht-site-shell button:focus-visible,
.jht-site-shell input:focus-visible,
.jht-site-shell textarea:focus-visible,
.jht-site-shell select:focus-visible,
.jht-site-shell summary:focus-visible {
	outline: 3px solid var(--jht-brass);
	outline-offset: 3px;
}

.jht-resource-start {
	padding-top: clamp(2.5rem, 5vw, 4.5rem);
	background: linear-gradient(180deg, rgba(235, 226, 210, .72), rgba(244, 240, 231, 0));
}

.jht-resource-principles {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
	gap: clamp(1.5rem, 4vw, 4rem);
	align-items: center;
	padding: clamp(1.6rem, 4vw, 3.2rem);
	background: var(--jht-green);
	color: var(--jht-white);
	border-radius: calc(var(--jht-radius) * 2);
	box-shadow: var(--jht-shadow);
}

.jht-resource-principles h2 {
	margin: .2rem 0 .65rem;
	color: var(--jht-white);
	font-size: 2.35rem;
}

.jht-resource-principles p {
	margin: 0;
	color: rgba(255, 250, 240, .82);
}

.jht-resource-principles .jht-eyebrow {
	color: #dfc99f;
}

.jht-resource-principles ol {
	display: grid;
	gap: .85rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.jht-resource-principles li {
	display: grid;
	grid-template-columns: 2.5rem minmax(0, 1fr);
	gap: .75rem;
	align-items: center;
	padding: .75rem 0;
	border-bottom: 1px solid rgba(255, 250, 240, .18);
}

.jht-resource-principles li span {
	color: #dfc99f;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.2rem;
}

.jht-resource-quicknav {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 1.25rem;
}

.jht-resource-quicknav a {
	display: grid;
	gap: .35rem;
	min-height: 104px;
	padding: 1.15rem;
	background: rgba(255, 250, 240, .7);
	color: var(--jht-ink);
	border: var(--jht-border);
	border-radius: var(--jht-radius);
	text-decoration: none;
	transition: transform var(--jht-fast) var(--jht-ease), border-color var(--jht-fast) var(--jht-ease), background var(--jht-fast) var(--jht-ease);
}

.jht-resource-quicknav a:hover {
	transform: translateY(-3px);
	background: var(--jht-white);
	border-color: var(--jht-brass);
}

.jht-resource-quicknav strong {
	font-family: Georgia, "Times New Roman", "Songti SC", serif;
	font-size: 1.25rem;
}

.jht-resource-quicknav small {
	color: var(--jht-muted);
	line-height: 1.55;
}

.jht-exam-cluster {
	scroll-margin-top: 92px;
	border-top: 1px solid rgba(32, 40, 35, .11);
}

.jht-exam-cluster:nth-of-type(even) {
	background: rgba(255, 250, 240, .28);
}

.jht-exam-heading {
	display: flex;
	justify-content: space-between;
	gap: 1.5rem;
	align-items: end;
	margin-bottom: clamp(1.4rem, 3vw, 2.4rem);
}

.jht-exam-heading h2 {
	margin: .2rem 0 .35rem;
	font-size: 2.25rem;
}

.jht-exam-heading p {
	margin: 0;
	color: var(--jht-muted);
}

.jht-exam-chips {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: .5rem;
	max-width: 52%;
}

.jht-exam-chips span {
	padding: .42rem .72rem;
	background: rgba(40, 82, 68, .08);
	color: var(--jht-green);
	border: 1px solid rgba(40, 82, 68, .2);
	border-radius: 999px;
	font-size: .82rem;
	font-weight: 700;
}

.jht-resource-policy {
	background: var(--jht-paper-deep);
}

.jht-resource-disclaimer {
	margin-top: 1.25rem;
	padding: 1rem 1.2rem;
	background: rgba(255, 250, 240, .7);
	border-left: 4px solid var(--jht-vermilion);
	color: var(--jht-muted);
	font-size: .93rem;
}

@media (max-width: 1020px) {
	.jht-hero h1 {
		font-size: 4rem;
	}

	.jht-section-heading h2,
	.jht-page-intro h1 {
		font-size: 2.5rem;
	}

	.jht-brand {
		max-width: none;
	}

	.jht-hero {
		min-height: auto;
	}

	.jht-hero-art {
		max-width: 680px;
		margin-inline: auto;
	}

	.jht-card-grid,
	.jht-list-grid,
	.jht-topic-grid,
	.jht-compass-grid,
	.jht-footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.jht-hero-grid,
	.jht-language-culture-grid,
	.jht-feature-band,
	.jht-story,
	.jht-wechat-cta,
	.jht-contact-layout,
	.jht-article-layout {
		grid-template-columns: 1fr;
	}

	.jht-sidebar {
		position: static;
	}

	.jht-qr-frame {
		justify-self: start;
	}

	.jht-resource-quicknav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 900px) {
	.jht-nav-shell {
		grid-template-columns: minmax(0, 1fr) auto auto;
		min-height: 72px;
		gap: .65rem;
	}

	.jht-brand {
		grid-template-columns: 54px minmax(0, 1fr);
		gap: .7rem;
	}

	.jht-brand-mark {
		width: 54px;
		height: 54px;
	}

	.jht-brand-name {
		font-size: 1.42rem;
	}

	.jht-brand-kicker {
		font-size: .74rem;
		line-height: 1.25;
	}

	.jht-menu-toggle {
		display: inline-grid;
		place-items: center;
		justify-self: end;
	}

	.jht-nav-cta {
		display: none;
	}

	.jht-language-switcher select {
		min-width: 5.8rem;
		max-width: 30vw;
		padding-inline: .55rem;
	}

	.jht-primary-nav {
		position: fixed;
		inset: 72px 0 auto;
		z-index: var(--jht-z-drawer);
		display: none;
		grid-template-columns: 1fr;
		justify-content: stretch;
		gap: 0;
		background: var(--jht-paper);
		border-bottom: var(--jht-border);
		box-shadow: var(--jht-shadow);
		padding: .8rem 1rem 1.2rem;
	}

	.jht-primary-nav.is-open {
		display: grid;
	}

	.jht-menu-toggle.is-open .jht-menu-lines {
		background: transparent;
	}

	.jht-menu-toggle.is-open .jht-menu-lines::before {
		top: 0;
		transform: rotate(45deg);
	}

	.jht-menu-toggle.is-open .jht-menu-lines::after {
		top: 0;
		transform: rotate(-45deg);
	}

	.jht-primary-nav a {
		padding: .85rem 0;
		border-bottom: var(--jht-border);
	}
}

@media (max-width: 760px) {

	.jht-hero {
		padding-top: 2rem;
	}

	.jht-hero h1 {
		font-size: 2.65rem;
		max-width: 100%;
	}

	.jht-lede {
		font-size: 1.05rem;
	}

	.jht-section-heading h2,
	.jht-page-intro h1 {
		font-size: 2rem;
	}

	.jht-hero-logo-image {
		width: min(72vw, 320px);
		max-height: 360px;
	}

	.jht-section-heading {
		grid-template-columns: 1fr;
	}

	.jht-editor-panel {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.jht-editor-panel > :not(.jht-panel-index),
	.jht-panel-index {
		grid-column: 1;
	}

	.jht-panel-index {
		grid-row: auto;
		width: 64px;
		margin-bottom: .35rem;
	}

	.jht-dual-grid,
	.jht-card-grid,
	.jht-list-grid,
	.jht-topic-grid,
	.jht-language-orbit,
	.jht-compass-grid,
	.jht-timeline,
	.jht-footer-grid {
		grid-template-columns: 1fr;
	}

	.jht-qr-frame {
		justify-self: stretch;
	}

	.jht-footer-bottom {
		display: grid;
	}

	.jht-resource-principles {
		grid-template-columns: 1fr;
	}

	.jht-exam-heading {
		display: grid;
		align-items: start;
	}

	.jht-exam-chips {
		justify-content: flex-start;
		max-width: none;
	}
}

@media (max-width: 420px) {
	.jht-shell {
		width: min(var(--jht-max), calc(100% - 1rem));
	}

	.jht-hero h1 {
		font-size: 2.35rem;
	}

	.jht-button-row {
		display: grid;
	}

	.jht-brand {
		grid-template-columns: 46px minmax(0, 1fr);
		gap: .55rem;
	}

	.jht-brand-mark {
		width: 46px;
		height: 46px;
	}

	.jht-brand-name {
		font-size: 1.22rem;
	}

	.jht-brand-kicker {
		font-size: .68rem;
		line-height: 1.2;
	}

	.jht-language-switcher select {
		min-width: 4.9rem;
		max-width: 27vw;
		font-size: .82rem;
	}

	.jht-resource-quicknav {
		grid-template-columns: 1fr;
	}

	.jht-editor-panel,
	.jht-card,
	.jht-empty-state,
	.jht-inquiry-cta,
	.jht-inquiry-form,
	.jht-topic-link,
	.jht-aside-quote {
		padding: 1.15rem;
	}
}

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

	.jht-reveal {
		opacity: 1;
		transform: none;
	}

	.jht-hero-logo-image {
		animation: none;
	}
}
