/**
 * Chao English Runtime — 顶级 UI 设计系统（老钱式极简 · 高对比）
 * 基于 HumiEnglish --ce-* 设计令牌扩展；无框架依赖。
 *
 * 设计原则：大留白、克制动效、衬线标题的权威感、深色高对比、资产沉淀的"老钱"质感。
 */

[x-cloak] { display: none !important; }

.cer-app {
	--cer-ink: #0a0a0a;
	--cer-ink-soft: #4a4a4a;
	--cer-line: #e6e3dd;
	--cer-paper: #ffffff;
	--cer-cream: #f7f5f0;
	--cer-gold: #8a6a1f;
	--cer-gold-soft: #a8842c;
	--cer-best: #0f5132;
	--cer-best-bg: #e7f2ec;
	--cer-miss: #7a2e2e;
	--cer-danger-bg: #fbeceb;
	--cer-radius: 14px;
	--cer-serif: "Songti SC", "Noto Serif SC", Georgia, "Times New Roman", serif;
	--cer-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", sans-serif;

	max-width: 760px;
	margin: 0 auto;
	padding: 40px 20px 96px;
	color: var(--cer-ink);
	font-family: var(--cer-sans);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

/* ── Hero ── */
.cer-hero { text-align: center; margin: 24px 0 48px; }
.cer-hero-left { text-align: left; }
.cer-eyebrow {
	font-size: 13px; letter-spacing: .18em; text-transform: uppercase;
	color: var(--cer-gold); font-weight: 600; margin: 0 0 14px;
}
.cer-hero-title {
	font-family: var(--cer-serif);
	font-size: clamp(28px, 5vw, 44px); line-height: 1.2; letter-spacing: -.01em;
	margin: 0 0 16px; font-weight: 700;
}
.cer-hero-lead { font-size: 17px; color: var(--cer-ink-soft); max-width: 52ch; margin: 0 auto; }
.cer-hero-left .cer-hero-lead { margin: 0; }

/* ── Cards ── */
.cer-card {
	background: var(--cer-paper);
	border: 1px solid var(--cer-line);
	border-radius: var(--cer-radius);
	padding: 36px;
	box-shadow: 0 1px 3px rgba(0,0,0,.04), 0 12px 32px rgba(0,0,0,.05);
}

/* ── Identity choice (start) ── */
.cer-identity-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 640px) { .cer-identity-grid { grid-template-columns: 1fr; } }
.cer-identity-card {
	display: flex; flex-direction: column; align-items: flex-start; gap: 10px;
	text-align: left; cursor: pointer; width: 100%;
	background: var(--cer-paper) !important; color: var(--cer-ink) !important; border: 1px solid var(--cer-line);
	border-radius: var(--cer-radius); padding: 28px 26px;
	transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.cer-identity-card:hover {
	transform: translateY(-3px); border-color: var(--cer-ink);
	box-shadow: 0 16px 40px rgba(0,0,0,.09);
}
.cer-identity-card.is-loading { opacity: .55; pointer-events: none; }
.cer-identity-label { font-family: var(--cer-serif); font-size: 21px; font-weight: 700; }
.cer-identity-desc { font-size: 15px; color: var(--cer-ink-soft); }
.cer-identity-go { margin-top: 6px; font-size: 14px; font-weight: 600; color: var(--cer-gold); }

/* ── Mission ── */
.cer-mission-title { font-family: var(--cer-serif); font-size: 26px; margin: 6px 0 14px; line-height: 1.3; }
.cer-scenario {
	font-size: 17px; color: var(--cer-ink); background: var(--cer-cream);
	border-left: 3px solid var(--cer-gold); padding: 16px 20px; border-radius: 8px; margin: 0 0 28px;
}
.cer-choose-hint { font-size: 14px; color: var(--cer-ink-soft); margin: 0 0 14px; font-style: italic; }
.cer-options { display: flex; flex-direction: column; gap: 12px; }
.cer-option {
	display: flex; gap: 14px; align-items: flex-start; text-align: left; cursor: pointer; width: 100%;
	background: var(--cer-paper) !important; border: 1px solid var(--cer-line); border-radius: 12px;
	padding: 18px 20px; transition: border-color .15s ease, background .15s ease;
	color: var(--cer-ink) !important; font-family: var(--cer-sans);
}
.cer-option:hover { border-color: var(--cer-ink); background: #fcfbf9 !important; }
.cer-option:disabled { opacity: .5; pointer-events: none; }
.cer-option-key {
	flex: 0 0 30px; height: 30px; border-radius: 50%; display: grid; place-items: center;
	background: var(--cer-ink); color: #fff !important; font-weight: 700; font-size: 14px;
}
.cer-option-text { font-size: 16px; color: var(--cer-ink) !important; line-height: 1.6; }

/* ── Reveal: 高下立判 ── */
/* ── Reveal: 高下立判（克制高级 · stagger） ── */
.cer-reveal { animation: cerFade .35s ease; }
@keyframes cerFade { from { opacity: 0; } to { opacity: 1; } }
.cer-verdict {
	font-family: var(--cer-serif); font-size: 24px; font-weight: 700; margin: 0 0 22px;
	animation: cerRise .5s cubic-bezier(.2,.8,.2,1) both;
}
.cer-verdict.is-best { color: var(--cer-best); }
.cer-verdict.is-miss { color: var(--cer-miss); }
.cer-compare { display: flex; flex-direction: column; gap: 10px; margin-bottom: 26px; }
.cer-compare-row {
	display: flex; gap: 12px; align-items: baseline; padding: 15px 18px; border-radius: 10px;
	font-size: 15px; background: var(--cer-cream);
	opacity: 0; transform: translateY(10px); transition: opacity .5s ease, transform .5s cubic-bezier(.2,.8,.2,1);
}
.cer-compare-row.is-in { opacity: 1; transform: none; }
/* Losers recede; winner rises. */
.cer-compare-row.is-a.is-in, .cer-compare-row.is-b.is-in {
	opacity: .75; text-decoration: line-through solid rgba(122,46,46,.55);
}
.cer-compare-row.is-c {
	background: var(--cer-best-bg); font-weight: 500;
	box-shadow: 0 0 0 1px var(--cer-best) inset, 0 10px 28px rgba(15,81,50,.12);
}
.cer-compare-row.is-c.is-in { transform: translateY(-2px); }
.cer-tag {
	flex: 0 0 auto; font-size: 11px; letter-spacing: .05em; padding: 3px 9px; border-radius: 999px;
	background: #e4e1d9; color: #3a3833; font-weight: 700; white-space: nowrap;
}
.cer-tag-best { background: var(--cer-best); color: #fff; }
.cer-analysis {
	background: var(--cer-ink); color: #f5f3ee; border-radius: 12px; padding: 24px 26px;
	opacity: 0; transform: translateY(10px); transition: opacity .55s ease, transform .55s cubic-bezier(.2,.8,.2,1);
}
.cer-analysis.is-in { opacity: 1; transform: none; }
.cer-analysis-label { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: #d8b45a; margin: 0 0 10px; font-weight: 700; }
.cer-analysis-text { font-size: 16px; line-height: 1.78; margin: 0; }
@keyframes cerRise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* ── Buttons ── */
.cer-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px; }
.cer-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 14px 26px; border-radius: 999px; font-size: 15px; font-weight: 600;
	cursor: pointer; border: 1px solid transparent; text-decoration: none; transition: all .16s ease;
}
.cer-btn-primary { background: var(--cer-ink) !important; color: #fff !important; }
.cer-btn-primary:hover { background: #2a2a2a !important; transform: translateY(-1px); }
.cer-btn-primary:disabled { opacity: .55; pointer-events: none; }
.cer-btn-ghost { background: transparent !important; border-color: var(--cer-line); color: var(--cer-ink) !important; }
.cer-btn-ghost:hover { border-color: var(--cer-ink); background: transparent !important; }

/* ── Vault ── */
.cer-section-label { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--cer-gold); font-weight: 700; margin: 0 0 12px; }
.cer-evolution { background: var(--cer-cream); border-radius: var(--cer-radius); padding: 28px; margin-bottom: 32px; }
.cer-evo-stage { font-family: var(--cer-serif); font-size: 22px; font-weight: 700; margin-bottom: 18px; }
.cer-evo-mirror { display: grid; grid-template-columns: 1fr auto 1fr; gap: 16px; align-items: center; }
@media (max-width: 640px) { .cer-evo-mirror { grid-template-columns: 1fr; } .cer-evo-arrow { transform: rotate(90deg); } }
.cer-evo-col { background: var(--cer-paper); border: 1px solid var(--cer-line); border-radius: 10px; padding: 16px; font-size: 14px; }
.cer-evo-col.is-now { border-color: var(--cer-best); background: var(--cer-best-bg); }
.cer-evo-arrow { font-size: 22px; color: var(--cer-gold); text-align: center; }
.cer-partitions { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 26px; }
.cer-chip {
	display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border-radius: 999px;
	background: var(--cer-paper) !important; color: var(--cer-ink) !important; cursor: pointer;
	border: 1px solid var(--cer-line); font-size: 14px;
	transition: all .15s ease;
}
.cer-chip.is-active { background: var(--cer-ink) !important; color: #fff !important; border-color: var(--cer-ink); }
.cer-chip:hover { border-color: var(--cer-ink); }
.cer-chip-count { font-size: 12px; opacity: .7; }
.cer-entries { display: flex; flex-direction: column; gap: 14px; }
.cer-entry { border: 1px solid var(--cer-line); border-radius: 12px; padding: 20px 22px; background: var(--cer-paper); }
.cer-entry-part { font-size: 11px; letter-spacing: .05em; color: var(--cer-gold); font-weight: 700; text-transform: uppercase; }
.cer-entry-after { font-size: 16px; margin: 8px 0 6px; }
.cer-entry-time { font-size: 12px; color: var(--cer-ink-soft); }

/* ── Annual seat (reserved) ── */
.cer-seat-reserved { margin-top: 48px; }
.cer-seat-card.is-locked {
	border: 1px dashed var(--cer-gold); border-radius: var(--cer-radius); padding: 26px;
	background: linear-gradient(180deg, #fdfbf6, #f7f2e7); text-align: center; opacity: .92;
}
.cer-seat-badge { display: inline-block; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--cer-gold); border: 1px solid var(--cer-gold); border-radius: 999px; padding: 3px 12px; margin-bottom: 12px; font-weight: 700; }
.cer-seat-card h3 { font-family: var(--cer-serif); font-size: 20px; margin: 0 0 8px; }
.cer-seat-card p { font-size: 14px; color: var(--cer-ink-soft); margin: 0; }

/* ── Forms (apply / audit) ── */
.cer-form { display: flex; flex-direction: column; gap: 20px; max-width: 620px; }
.cer-field { display: flex; flex-direction: column; gap: 8px; }
.cer-field span { font-size: 14px; font-weight: 600; }
.cer-field input, .cer-field textarea {
	border: 1px solid var(--cer-line); border-radius: 10px; padding: 14px 16px; font-size: 16px;
	font-family: inherit; background: var(--cer-paper); transition: border-color .15s ease;
}
.cer-field input:focus, .cer-field textarea:focus { outline: none; border-color: var(--cer-ink); }
.cer-note { font-size: 14px; color: var(--cer-miss); }

/* ── Apply receipt (被筛选感) ── */
.cer-receipt { text-align: center; padding: 48px 32px; border-radius: var(--cer-radius); margin-top: 24px; }
.cer-receipt.is-eval { background: var(--cer-cream); border: 1px solid var(--cer-gold); }
.cer-receipt.is-declined { background: var(--cer-cream); border: 1px solid var(--cer-line); }
.cer-receipt-seal {
	display: inline-block; font-family: var(--cer-serif); font-size: 15px; letter-spacing: .1em;
	color: var(--cer-gold); border: 2px solid var(--cer-gold); border-radius: 999px;
	padding: 8px 22px; margin-bottom: 20px; font-weight: 700;
}
.cer-receipt.is-declined .cer-receipt-seal { color: var(--cer-ink-soft); border-color: var(--cer-line); }
.cer-receipt-text { font-size: 17px; max-width: 44ch; margin: 0 auto; }

/* ── Audit ── */
.cer-value-list { list-style: none; padding: 0; margin: 0 0 36px; display: flex; flex-direction: column; gap: 12px; }
.cer-value-list li { position: relative; padding-left: 30px; font-size: 16px; }
.cer-value-list li::before { content: "→"; position: absolute; left: 0; color: var(--cer-gold); font-weight: 700; }
.cer-pending { text-align: center; padding: 56px 32px; background: var(--cer-cream); border-radius: var(--cer-radius); }
.cer-pending-text { font-size: 18px; font-family: var(--cer-serif); }

/* ── Audit report: 风险资产清单 (scores ONLY here) ── */
.cer-report { animation: cerFade .4s ease; }
.cer-report-title { font-family: var(--cer-serif); font-size: 26px; text-align: center; margin: 0 0 32px; }
.cer-scores { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 28px; }
.cer-score { text-align: center; border: 1px solid var(--cer-line); border-radius: 12px; padding: 24px 12px; background: var(--cer-paper); }
.cer-score-val { display: block; font-family: var(--cer-serif); font-size: 40px; font-weight: 700; line-height: 1; }
.cer-score-label { display: block; font-size: 13px; color: var(--cer-ink-soft); margin-top: 8px; }
.cer-loss { background: var(--cer-danger-bg); border-left: 4px solid var(--cer-miss); border-radius: 10px; padding: 22px 24px; margin-bottom: 18px; }
.cer-loss-label { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--cer-miss); font-weight: 700; margin: 0 0 8px; }
.cer-loss-text { font-size: 17px; margin: 0; font-weight: 500; }
.cer-advice { background: var(--cer-best-bg); border-left: 4px solid var(--cer-best); border-radius: 10px; padding: 22px 24px; margin-bottom: 28px; }
.cer-advice-label { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--cer-best); font-weight: 700; margin: 0 0 8px; }
.cer-advice-text { font-size: 16px; margin: 0; }
.cer-prowrite { width: 100%; }

/* ── States ── */
.cer-empty { text-align: center; padding: 56px 20px; color: var(--cer-ink-soft); font-size: 16px; }

/* Skeleton screen (real content-shaped placeholders) */
.cer-skel { border-radius: 8px; background: linear-gradient(90deg, #efece6 25%, #f6f4ef 37%, #efece6 63%); background-size: 400% 100%; animation: cerShimmer 1.4s ease infinite; }
.cer-skel-eyebrow { width: 40%; height: 12px; margin-bottom: 18px; }
.cer-skel-title { width: 75%; height: 26px; margin-bottom: 20px; }
.cer-skel-scenario { width: 100%; height: 62px; margin-bottom: 28px; }
.cer-skel-opt { width: 100%; height: 58px; margin-bottom: 12px; }
@keyframes cerShimmer { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } }

/* ── Journey progress strip (page relationships + always-on nav) ── */
.cer-journey {
	display: flex; align-items: center; justify-content: center; flex-wrap: wrap;
	gap: 8px; margin: 0 0 40px; padding: 0;
}
.cer-journey-step {
	display: inline-flex; align-items: center; gap: 8px; text-decoration: none;
	padding: 8px 16px; border-radius: 999px; border: 1px solid var(--cer-line);
	color: var(--cer-ink-soft); font-size: 14px; font-weight: 600; transition: all .15s ease;
}
.cer-journey-step:hover { border-color: var(--cer-ink); color: var(--cer-ink); }
.cer-journey-step.is-current { background: var(--cer-ink); color: #fff; border-color: var(--cer-ink); }
.cer-journey-num {
	display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%;
	background: var(--cer-cream); color: var(--cer-ink); font-size: 12px; font-weight: 700;
}
.cer-journey-step.is-current .cer-journey-num { background: var(--cer-gold); color: #fff; }
@media (max-width: 600px) {
	.cer-journey-label { display: none; }
	.cer-journey-step { padding: 8px; }
}

/* ── Bridge link (soft forward CTA between steps) ── */
.cer-bridge { margin-top: 22px; font-size: 15px; color: var(--cer-ink-soft); }
.cer-bridge a { color: var(--cer-gold); font-weight: 600; text-decoration: none; border-bottom: 1px solid transparent; }
.cer-bridge a:hover { border-bottom-color: var(--cer-gold); }
.cer-vault-cta { margin-top: 36px; }

/* ── Product-ized homepage ── */
.cer-home-hero { padding: 32px 0 8px; }
.cer-home-title { max-width: 16ch; margin-left: auto; margin-right: auto; }
.cer-home-how { margin: 64px 0; }
.cer-how-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 24px; }
@media (max-width: 720px) { .cer-how-grid { grid-template-columns: 1fr; } }
.cer-how-card { background: var(--cer-paper); border: 1px solid var(--cer-line); border-radius: var(--cer-radius); padding: 28px 24px; }
.cer-how-num { font-family: var(--cer-serif); font-size: 15px; color: var(--cer-gold); font-weight: 700; letter-spacing: .1em; }
.cer-how-card h3 { font-family: var(--cer-serif); font-size: 20px; margin: 10px 0 10px; }
.cer-how-card p { font-size: 15px; color: var(--cer-ink-soft); margin: 0; line-height: 1.7; }
.cer-home-ladder {
	background: var(--cer-cream); border-radius: var(--cer-radius); padding: 40px 32px; text-align: center; margin: 48px 0;
}
.cer-home-ladder h2 { font-family: var(--cer-serif); font-size: 26px; margin: 0 0 12px; }
.cer-home-ladder p { font-size: 16px; color: var(--cer-ink-soft); max-width: 52ch; margin: 0 auto 24px; }
.cer-home-final { text-align: center; padding: 56px 0 16px; }
.cer-home-final .cer-hero-title { margin-bottom: 24px; }

/* ── Audit purchase state (single CTA) ── */
.cer-buy { text-align: center; padding: 8px 0 8px; }
.cer-seat-note { background: var(--cer-cream); border: 1px solid var(--cer-line); border-radius: var(--cer-radius); padding: 26px 28px; margin-bottom: 24px; }
.cer-seat-note .cer-seat-badge { display: inline-block; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--cer-gold); border: 1px solid var(--cer-gold); border-radius: 999px; padding: 4px 13px; margin-bottom: 12px; font-weight: 700; }
.cer-seat-note p { font-size: 16px; color: var(--cer-ink); margin: 0; }
.cer-btn-lg { padding: 16px 34px; font-size: 16px; }

/* ── About page ── */
.cer-about-block { margin: 44px 0; }
.cer-about-h { font-family: var(--cer-serif); font-size: 22px; margin: 0 0 16px; color: var(--cer-ink); }
.cer-about-block p { font-size: 16px; color: var(--cer-ink); line-height: 1.8; margin: 0; }
.cer-about-chao { background: var(--cer-cream); border-radius: var(--cer-radius); padding: 30px 32px; border-left: 3px solid var(--cer-gold); }
.cer-about-principle { background: var(--cer-ink); color: #f5f3ee; border-radius: var(--cer-radius); padding: 26px 30px; margin: 44px 0; }
.cer-about-principle p { margin: 0; font-size: 15px; line-height: 1.75; color: #f5f3ee; }
.cer-about .cer-how-card p { color: var(--cer-ink); }

/* ═══════════════════════════════════════════════════════════
   S-TIER POLISH (v0.21) — 进场动效 / 微交互 / toast / streak / 移动端
   ═══════════════════════════════════════════════════════════ */

/* Respect reduced-motion */
@media (prefers-reduced-motion: reduce) {
	.cer-app *, .cer-app *::before, .cer-app *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Page enter: gentle rise-in for the primary card/hero */
.cer-app .cer-hero,
.cer-app .cer-mission-card,
.cer-app .cer-home > section,
.cer-app .cer-about-block {
	animation: cerEnter .55s cubic-bezier(.2,.75,.2,1) both;
}
.cer-app .cer-home > section:nth-of-type(2) { animation-delay: .06s; }
.cer-app .cer-home > section:nth-of-type(3) { animation-delay: .12s; }
.cer-app .cer-home > section:nth-of-type(4) { animation-delay: .18s; }
@keyframes cerEnter { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* Buttons: crisper press + focus-visible ring (a11y) */
.cer-btn:active { transform: translateY(1px) scale(.995); }
.cer-btn:focus-visible,
.cer-option:focus-visible,
.cer-identity-card:focus-visible,
.cer-chip:focus-visible {
	outline: none; box-shadow: 0 0 0 3px rgba(138,106,31,.35);
}
.cer-btn-primary {
	box-shadow: 0 2px 8px rgba(10,10,10,.16);
}
.cer-btn-primary:hover { box-shadow: 0 8px 22px rgba(10,10,10,.22); }

/* Option: number badge fills gold on hover; subtle lift */
.cer-option { position: relative; }
.cer-option:hover { transform: translateY(-1px); box-shadow: 0 8px 24px rgba(10,10,10,.06); }
.cer-option:hover .cer-option-key { background: var(--cer-gold); }
.cer-option-key { transition: background .18s ease; }

/* Hero title: refined tracking + optical sizing */
.cer-hero-title { text-wrap: balance; }
.cer-hero-lead { text-wrap: pretty; }

/* Scenario card: quote mark accent */
.cer-scenario { position: relative; }

/* Analysis card: soft inner glow to feel premium */
.cer-analysis { box-shadow: 0 18px 44px rgba(10,10,10,.18); }

/* ── Toast (journey feedback) ── */
.cer-toast-wrap { position: fixed; left: 0; right: 0; bottom: 28px; display: flex; justify-content: center; z-index: 9999; pointer-events: none; }
.cer-toast {
	pointer-events: auto; background: var(--cer-ink); color: #fff; padding: 13px 22px; border-radius: 999px;
	font-size: 14px; font-weight: 600; box-shadow: 0 12px 34px rgba(10,10,10,.3);
	display: inline-flex; align-items: center; gap: 10px;
	animation: cerToastIn .4s cubic-bezier(.2,.8,.2,1) both;
}
.cer-toast .cer-toast-dot { width: 8px; height: 8px; border-radius: 50%; background: #4ade80; }
@keyframes cerToastIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

/* ── Streak badge (mission header) ── */
.cer-streak {
	display: inline-flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 700;
	color: var(--cer-gold); background: #fbf6ea; border: 1px solid #ecd9a8;
	padding: 5px 13px; border-radius: 999px; margin-bottom: 16px;
}
.cer-streak-flame { font-size: 14px; }

/* ── Next-step nudge after reveal ── */
.cer-nextstep {
	margin-top: 20px; padding: 18px 20px; background: var(--cer-cream); border-radius: 12px;
	display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap;
}
.cer-nextstep-text { font-size: 14px; color: var(--cer-ink); }

/* ── Progress dots (mission → next) ── */
.cer-daydots { display: inline-flex; gap: 6px; margin-left: 8px; vertical-align: middle; }
.cer-daydot { width: 7px; height: 7px; border-radius: 50%; background: #d8d3c8; }
.cer-daydot.is-on { background: var(--cer-gold); }

/* ── Mobile refinements ── */
@media (max-width: 600px) {
	.cer-app { padding: 24px 16px 80px; }
	.cer-card, .cer-mission-card { padding: 24px 20px; }
	.cer-hero-title { font-size: clamp(24px, 7vw, 32px); }
	.cer-option { padding: 16px; }
	.cer-option-text { font-size: 15px; }
	.cer-btn { padding: 13px 22px; width: 100%; }
	.cer-actions { flex-direction: column; }
	.cer-actions .cer-btn { width: 100%; }
	.cer-scores { grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
	.cer-score { padding: 16px 6px; }
	.cer-score-val { font-size: 30px; }
	.cer-nextstep { flex-direction: column; align-items: stretch; }
}

/* Sticky bottom CTA on mobile mission (thumb-reach) — only when revealed */
@media (max-width: 600px) {
	.cer-reveal .cer-actions { position: sticky; bottom: 8px; background: linear-gradient(180deg, transparent, var(--cer-paper) 30%); padding-top: 12px; }
}

/* ── Vault empty-state shelf (Decision Library preview) ── */
.cer-shelf { margin-top: 8px; }
.cer-shelf-lead { font-size: 16px; color: var(--cer-ink); margin: 0 0 20px; }
.cer-shelf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 600px) { .cer-shelf-grid { grid-template-columns: 1fr; } }
.cer-shelf-card {
	display: flex; flex-direction: column; gap: 6px; text-decoration: none;
	background: var(--cer-paper) !important; color: var(--cer-ink) !important;
	border: 1px solid var(--cer-line); border-radius: var(--cer-radius); padding: 20px 22px;
	transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.cer-shelf-card:hover { transform: translateY(-2px); border-color: var(--cer-ink); box-shadow: 0 10px 28px rgba(10,10,10,.07); }
.cer-shelf-title { font-family: var(--cer-serif); font-size: 18px; font-weight: 700; }
.cer-shelf-hint { font-size: 13px; color: var(--cer-ink-soft); }
.cer-shelf-go { margin-top: 6px; font-size: 13px; font-weight: 700; color: var(--cer-gold); }

/* ── Free-tier locked reveal (v6 §4.1) ── */
.cer-locked { animation: cerFade .35s ease; }
.cer-locked-grade { font-size: 15px; color: var(--cer-ink-soft); margin: 8px 0 6px; }
.cer-locked-badge { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--cer-ink); color: #fff; font-family: var(--cer-serif); font-weight: 700; margin-left: 6px; }
.cer-locked-hint { font-size: 16px; color: var(--cer-ink); margin: 0 0 20px; }
.cer-locked-cta { background: var(--cer-cream); border: 1px solid var(--cer-line); border-radius: var(--cer-radius); padding: 24px; text-align: center; }
.cer-locked-cta-lead { font-family: var(--cer-serif); font-size: 18px; margin: 0 0 16px; }
.cer-locked-cta .cer-btn { margin: 4px; }

/* ── Review learning-case: timeline / final / my reviews (v6 阶段二) ── */
.cer-timeline { list-style: none; margin: 0 0 28px; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.cer-tl-step { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--cer-ink-soft); padding: 6px 0; }
.cer-tl-step.is-done { color: var(--cer-ink); font-weight: 600; }
.cer-tl-dot { width: 10px; height: 10px; border-radius: 50%; background: #d8d3c8; flex: 0 0 10px; }
.cer-tl-step.is-done .cer-tl-dot { background: var(--cer-best); }
.cer-final { margin-top: 24px; background: var(--cer-best-bg); border-radius: var(--cer-radius); padding: 22px 24px; }
.cer-final-label { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--cer-best); font-weight: 700; margin: 0 0 10px; }
.cer-final-text { font-size: 16px; line-height: 1.75; margin: 0 0 16px; white-space: pre-wrap; }
.cer-myreviews { margin-top: 44px; }
.cer-review-row { display: flex; align-items: center; gap: 14px; justify-content: space-between; padding: 14px 18px; border: 1px solid var(--cer-line); border-radius: 12px; margin-bottom: 10px; text-decoration: none; color: var(--cer-ink) !important; background: var(--cer-paper); transition: border-color .15s ease; }
.cer-review-row:hover { border-color: var(--cer-ink); }
.cer-review-doc { font-weight: 600; }
.cer-review-status { font-size: 13px; color: var(--cer-gold); font-weight: 700; }
.cer-review-time { font-size: 12px; color: var(--cer-ink-soft); }
.cer-field select { border: 1px solid var(--cer-line); border-radius: 10px; padding: 12px 14px; font-size: 15px; font-family: inherit; background: var(--cer-paper); }

/* ── Audit dashboard summary ── */
.cer-dash-summary{margin:0 0 22px}
.cer-dash-latest{background:var(--cer-cream);border:1px solid var(--cer-line);border-radius:var(--cer-radius);padding:18px 22px;margin-bottom:16px}
.cer-dash-latest-row{display:flex;align-items:center;gap:14px;margin-top:8px}
.cer-dash-latest-doc{font-weight:700;color:var(--cer-ink)}
.cer-dash-latest-st{font-size:13px;color:var(--cer-gold);font-weight:700}
.cer-dash-links{display:flex;gap:14px}
.cer-dash-link{color:var(--cer-gold);font-weight:600;text-decoration:none;font-size:14px}
.cer-dash-link:hover{text-decoration:underline}

/* ── v0.33 Report: Executive Judgment + 5-dim ★ stars ── */
.cer-judgment{background:var(--cer-ink);color:#f5f3ee;border-radius:var(--cer-radius);padding:26px 28px;margin-bottom:22px}
.cer-judgment-label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#d8b45a;font-weight:700;margin:0 0 10px}
.cer-judgment-text{font-size:17px;line-height:1.75;margin:0;font-family:var(--cer-serif)}
.cer-dims{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}
.cer-dim{background:var(--cer-paper);border:1px solid var(--cer-line);border-radius:12px;padding:18px 20px}
.cer-dim-head{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.cer-dim-label{font-weight:700;color:var(--cer-ink);font-size:15px;flex:0 0 80px}
.cer-dim-stars{color:var(--cer-gold);font-size:18px;letter-spacing:2px}
.cer-dim-note{font-size:14px;color:var(--cer-ink-soft);margin:0;line-height:1.7}
.cer-original{margin-top:20px;background:var(--cer-cream);border:1px solid var(--cer-line);border-radius:12px;padding:14px 18px}
.cer-original summary{font-size:13px;color:var(--cer-ink-soft);cursor:pointer;font-weight:600}
.cer-original pre{font-size:14px;white-space:pre-wrap;margin:10px 0 0;color:var(--cer-ink)}
.cer-buy-note{font-size:13px;color:var(--cer-ink-soft);margin:10px 0 0}

/* ── Doc type pills ── */
.cer-pills{display:flex;flex-wrap:wrap;gap:8px}
.cer-pill{border:1px solid var(--cer-line);border-radius:999px;padding:8px 16px;background:var(--cer-paper);color:var(--cer-ink-soft);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;font-family:inherit}
.cer-pill:hover{border-color:var(--cer-ink);color:var(--cer-ink);background:#faf9f6}
.cer-pill.is-on{background:var(--cer-ink);color:#fff;border-color:var(--cer-ink)}

/* ── Tier pricing cards ── */
.cer-tier-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.cer-tier-card{position:relative;display:flex;flex-direction:column;gap:2px;align-items:center;text-align:center;border:1px solid var(--cer-line);border-radius:14px;padding:18px 12px 10px;background:var(--cer-paper);cursor:pointer;transition:all .15s ease;font-family:inherit}
.cer-tier-card:hover{border-color:var(--cer-ink);transform:translateY(-1px);box-shadow:0 8px 20px rgba(10,10,10,.06);background:#faf9f6}
.cer-tier-card.is-on{border-color:var(--cer-ink);background:var(--cer-cream);box-shadow:0 0 0 1px var(--cer-ink) inset,0 8px 22px rgba(10,10,10,.08)}
.cer-tier-card.is-exec{border-style:dashed}
.cer-tier-badge{position:absolute;top:-8px;right:-4px;background:#0f5132;color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px}
.cer-tier-name{font-size:15px;font-weight:700;color:var(--cer-ink);margin-top:4px}
.cer-tier-sub{font-size:10px;color:var(--cer-ink-soft);letter-spacing:.05em;text-transform:uppercase}
.cer-tier-price{font-family:var(--cer-serif);font-size:30px;font-weight:800;color:var(--cer-ink);margin:6px 0 2px}
.cer-tier-words{font-size:11px;color:var(--cer-ink-soft)}
.cer-tier-desc{font-size:11px;color:var(--cer-gold);font-weight:600;margin-top:4px}
.cer-tier-card.is-on .cer-tier-desc{color:var(--cer-ink)}

/* ── Modal login overlay ── */
.cer-modal-backdrop{position:fixed;inset:0;z-index:99999;background:rgba(10,10,10,.65);display:flex;align-items:center;justify-content:center;animation:cerFadeIn .2s ease}
.cer-modal{background:#fff;border-radius:20px;width:380px;max-width:90vw;padding:36px 32px 28px;position:relative;box-shadow:0 24px 64px rgba(10,10,10,.18);animation:cerRise .25s cubic-bezier(.2,.8,.2,1)}
.cer-modal-close{position:absolute;top:14px;right:16px;background:none;border:none;font-size:18px;color:#8a877f;cursor:pointer}
.cer-modal-head{font-family:"Songti SC",Georgia,serif;font-size:28px;font-weight:700;text-align:center;color:#0a0a0a;border-bottom:2px solid #0a0a0a;padding-bottom:12px;margin-bottom:8px}
.cer-modal-tagline{font-size:13px;color:#8a877f;text-align:center;margin:0 0 20px}
.cer-modal-form{display:flex;flex-direction:column;gap:14px}
.cer-modal-form input{border:1px solid #e6e3dd;border-radius:10px;padding:12px 14px;font-size:15px;font-family:inherit}
.cer-modal-form input:focus{border-color:#0a0a0a;box-shadow:0 0 0 3px rgba(138,106,31,.18);outline:none}
.cer-modal-error{color:#7a2e2e;font-size:13px;margin:0}
.cer-modal-foot{text-align:center;font-size:13px;margin-top:16px;color:#8a877f}
.cer-modal-foot a{color:#8a6a1f;text-decoration:none}
@keyframes cerFadeIn{from{opacity:0}to{opacity:1}}
@keyframes cerRise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.cer-modal-backdrop{position:fixed;inset:0;z-index:99999;background:rgba(10,10,10,.65);display:flex;align-items:center;justify-content:center;animation:cerFadeIn .2s ease}
.cer-modal{background:#fff;border-radius:20px;width:380px;max-width:90vw;padding:36px 32px 28px;position:relative;box-shadow:0 24px 64px rgba(10,10,10,.18)}
.cer-modal-close{position:absolute;top:14px;right:16px;background:none;border:none;font-size:18px;color:#8a877f;cursor:pointer}
.cer-modal-head{font-family:"Songti SC",Georgia,serif;font-size:28px;font-weight:700;text-align:center;color:#0a0a0a;border-bottom:2px solid #0a0a0a;padding-bottom:12px;margin-bottom:8px}
.cer-modal-tagline{font-size:13px;color:#8a877f;text-align:center;margin:0 0 20px}
.cer-modal-form{display:flex;flex-direction:column;gap:14px}
.cer-modal-form input{border:1px solid #e6e3dd;border-radius:10px;padding:12px 14px;font-size:15px;font-family:inherit}
.cer-modal-form input:focus{border-color:#0a0a0a;box-shadow:0 0 0 3px rgba(138,106,31,.18);outline:none}
.cer-modal-error{color:#7a2e2e;font-size:13px;margin:0}
.cer-modal-foot{text-align:center;font-size:13px;margin-top:16px;color:#8a877f}
.cer-modal-foot a{color:#8a6a1f;text-decoration:none}
@keyframes cerFadeIn{from{opacity:0}to{opacity:1}}
.cer-modal-btn{background:var(--cer-ink,#0a0a0a)!important;color:#fff!important;border-color:var(--cer-ink,#0a0a0a)!important;width:100%;margin-top:4px}
.cer-modal-btn:hover{background:#2a2a2a!important}
.cer-modal-head .custom-logo{max-height:48px;width:auto}
.cer-modal-head .custom-logo-link{display:block}
@media(max-width:600px){.cer-tier-cards{grid-template-columns:1fr 1fr}}
.cer-apply-desc{font-size:15px;color:#5a564e;max-width:560px;margin:0 auto 24px;text-align:center;line-height:1.7}
.cer-home-proof{font-size:14px;color:#8a877f;text-align:center;margin:18px 0 0}
@media(max-width:600px){.cer-dim-note{font-size:13px}.cer-dim-label{flex:0 0 65px;font-size:13px}}
/* v3 Decision Review Report additions */
.cer-framework{display:flex;flex-direction:column;gap:8px;background:#f7f5f0;border:1px solid #e6e3dd;border-radius:12px;padding:16px 20px;margin-bottom:18px}
.cer-fw-item{display:flex;gap:10px;font-size:14px;line-height:1.6}
.cer-fw-label{flex-shrink:0;font-weight:700;color:#8a6a1f;min-width:72px}
.cer-pattern-badge{display:inline-flex;align-items:center;gap:6px;background:#fbf6ea;border:1px solid #ecd9a8;border-radius:999px;padding:6px 14px;margin-bottom:16px;font-size:13px;font-weight:700;color:#8a6a1f}
.cer-ej-cards{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.cer-ej-card{flex:1;min-width:140px;background:#fff;border:1px solid #e6e3dd;border-radius:10px;padding:12px 14px}
.cer-ej-key{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#8a6a1f;font-weight:700;margin-bottom:4px}
.cer-ej-val{display:block;font-size:14px;color:#0a0a0a;line-height:1.5}
.cer-dim-qual{display:inline-block;margin-left:8px;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px}
.cer-qual-critical{background:#fbeceb;color:#7a2e2e}.cer-qual-weak{background:#fff3d6;color:#8a6a1f}.cer-qual-moderate{background:#e8f0fe;color:#2c5aa0}.cer-qual-strong{background:#e7f2ec;color:#0f5132}.cer-qual-excellent{background:#d4edda;color:#0f5132}
.cer-evidence{border:1px solid #e6e3dd;border-radius:10px;padding:14px 18px;margin-top:16px}
.cer-ev-cat{margin:8px 0}
.cer-ev-label{display:inline-block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:#8a6a1f;margin-bottom:4px}
.cer-ev-cat ul{margin:4px 0 0 18px;font-size:13px;color:#5a564e;list-style:disc}
@media(max-width:600px){.cer-ej-card{min-width:100%}}
.cer-vault-kpi{display:flex;gap:16px;flex-wrap:wrap;margin:0 0 20px}
.cer-vkpi-item{background:#f7f5f0;border:1px solid #e6e3dd;border-radius:10px;padding:8px 16px;font-size:13px;font-weight:600;color:#0a0a0a}
.cer-audit-tabs{display:flex;gap:0;margin:0 0 20px;border-bottom:2px solid #e6e3dd}
.cer-audit-tab{padding:10px 22px;font-size:15px;font-weight:600;color:#5a564e;border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}
.cer-audit-tab:hover{background:#f0ede6;color:#0a0a0a}
.cer-audit-tab.is-active{color:#0a0a0a;border-bottom-color:#0a0a0a}
.cer-cases-list{display:flex;flex-direction:column;gap:8px}
.cer-case-row{display:flex;flex-direction:column;padding:14px 18px;background:#fff;border:1px solid #e6e3dd;border-radius:12px;cursor:pointer;transition:border-color .15s,transform .15s}
.cer-case-row:hover{border-color:#0a0a0a;transform:translateX(4px)}
.cer-case-doc{font-size:15px;font-weight:700;color:#0a0a0a}
.cer-case-tier{font-size:12px;color:#8a6a1f}
.cer-case-row-preview{font-size:12px;color:#5a564e;margin:4px 0;line-height:1.5;overflow:hidden;max-height:3em;font-family:"Songti SC","Noto Serif CJK SC",serif;background:#f9f8f5;padding:6px 10px;border-radius:6px}

/* ── Countdown (mission empty & locked) ── */
.cer-countdown-state{text-align:center;padding:48px 20px}
.cer-countdown-eyebrow{font-size:15px;color:var(--cer-ink-soft);margin:0 0 8px}
.cer-countdown-digits{font-family:"SF Mono","Menlo","Consolas",monospace;font-size:32px;font-weight:700;color:var(--cer-ink);letter-spacing:.04em;margin:0 0 4px}
.cer-countdown-meta{font-size:12px;color:var(--cer-gold);display:block}

/* ── Entry badges ── */
.cer-entry-hd{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.cer-entry-badge{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:6px;line-height:1.4}
.cer-entry-badge--daily_mission{background:#f0ede6;color:#5a564e}
.cer-entry-badge--human_review{background:#fdf3d6;color:#8a6a1f}
.cer-entry-badge--manual{background:#e8f0fe;color:#2c5aa0}
.cer-entry-actions{display:flex;align-items:center;gap:2px;margin-left:auto}
.cer-entry-copy{background:none;border:none;color:var(--cer-gold);cursor:pointer;font-size:16px;padding:0 6px;line-height:1;opacity:.6;transition:opacity .15s}
.cer-entry-copy:hover{opacity:1}
.cer-entry-del{background:none;border:none;color:#b0aca5;cursor:pointer;font-size:14px;padding:0 4px;line-height:1;border-radius:4px;transition:color .15s,background .15s}
.cer-entry-del:hover{color:#7a2e2e;background:#fbeceb}

/* ── Three-stage milestones ── */
.cer-evo-milestones{display:flex;align-items:stretch;gap:12px;margin-top:12px;overflow-x:auto;padding-bottom:4px}
.cer-evo-mile{flex:1;min-width:160px;display:flex;flex-direction:column;align-items:center;text-align:center}
.cer-evo-mile-arrow{display:flex;align-items:center;font-size:20px;color:var(--cer-ink-soft);padding-top:18px}
.cer-evo-mile-num{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--cer-gold);font-weight:700;margin-bottom:6px}
.cer-evo-mile-num-goal{color:var(--cer-best)}
.cer-evo-mile-card{background:var(--cer-paper);border:1px solid var(--cer-line);border-radius:10px;padding:12px 14px;width:100%}
.cer-evo-mile.is-goal .cer-evo-mile-card{border-color:var(--cer-best);background:var(--cer-best-bg)}
.cer-evo-mile-label{display:block;font-size:13px;font-weight:700;color:var(--cer-ink);margin-bottom:4px}
.cer-evo-mile-text{font-size:12px;color:var(--cer-ink-soft);line-height:1.5;margin:0;word-break:break-word}
.cer-evo-mile.is-goal .cer-evo-mile-text{color:var(--cer-best)}

/* ── Stepped onboarding ── */
.cer-shelf-stepped{display:flex;flex-direction:column;gap:14px;max-width:420px;margin:0 auto}
.cer-shelf-step{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;background:var(--cer-paper);border:1px solid var(--cer-line);border-radius:10px}
.cer-shelf-step-num{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--cer-cream);border-radius:50%;font-size:14px;font-weight:700;color:var(--cer-gold)}
.cer-shelf-step-title{display:block;font-size:14px;font-weight:700;color:var(--cer-ink);margin-bottom:2px}
.cer-shelf-step-desc{display:block;font-size:12px;color:var(--cer-ink-soft)}

@media (max-width: 600px) {
	.cer-evo-milestones{flex-direction:column}
	.cer-evo-mile-arrow{transform:rotate(90deg);padding-top:0}
	.cer-countdown-digits{font-size:24px}
}
