:root {
  --font-editorial: "Songti TC", "Noto Serif TC", "PMingLiU", "Times New Roman", serif;
  --font-reading: "Avenir Next", "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", sans-serif;
  --font-interface: "Avenir Next", "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", sans-serif;
  --paper: #ffffff;
  --ink: #26364d;
  --muted: #5f7088;
  --line: #e0e7f0;
  --soft: #f7f9fd;
  --accent-blue: #456b99;
  --accent-soft: #eff4fb;
  --glass: rgba(255,255,255,.86);
  --reading-shadow: 0 14px 36px rgba(71,94,132,.07);
  color: var(--ink);
  font-family: var(--font-interface);
  background: #fff;
}
body { background: linear-gradient(160deg,#f3f6fc 0,#fff 480px); color:var(--ink); }
.gem-guide-link { display:inline-flex; align-items:center; gap:9px; color:var(--accent-blue); background:rgba(255,255,255,.9); border:1px solid #d7e2f1; border-radius:6px; padding:9px 14px; min-height:44px; margin:18px 0 8px; font-family:var(--font-interface); font-size:13px; text-decoration:none; }
.gem-guide-link:hover { background:#edf3fb; border-color:#b9cce5; }
.gem-guide-link > svg { width:16px; height:16px; }
.stage-view > .gem-guide-link:first-child { margin:0 0 22px; }
h1,h2 { font-family:var(--font-reading); font-weight:600; }
.topbar, .presentation-header {
  background:rgba(255,255,255,.88);
  -webkit-backdrop-filter:blur(20px);
  backdrop-filter:blur(20px);
  border-bottom-color:rgba(210,222,239,.65);
}
.brand-mark { background:#eff4fb; color:var(--accent-blue); border:1px solid #dae5f4; }
.brand-title { font-family:var(--font-reading); font-size:17px; }
.brand-meta, .brand-divider, .header-label, .header-divider { display:none; }
.brand > span:not(.brand-mark) { font-family:var(--font-reading); }
.sidebar, .rail { background:rgba(248,250,254,.72); border-right-color:#e8edf5; }
.nav-eyebrow, .rail-label, .nav-footer p, .rail-bottom p { display:none; }
.sidebar nav a, .journey-button { border-radius:6px; border-left:0; }
.sidebar nav a[aria-current="location"], .journey-button[aria-current="step"] { background:#eaf0fa; box-shadow:inset 0 0 0 1px #dce6f4; }
.sidebar nav a:hover, .journey-button:not(:disabled):hover { background:#f0f4fa; }
.nav-group { font-family:var(--font-reading); font-size:14px; }
.nav-group span { font-family:var(--font-interface); font-size:11px; }
.journey-number { background:#fff; }
.journey-button[aria-current="step"] .journey-number { background:#456b99; border-color:#456b99; }
.topbar .brand-title, .brand { color:var(--ink); }
main { background:transparent; }
#start > .eyebrow, .intro > .eyebrow, .stage-heading > .eyebrow { display:none; }
#start h1 { font-size:37px; margin-bottom:12px; }
.intro h1 { font-size:36px; }
.stage-heading h1 { font-size:31px; }
.intro-subtitle { font-family:var(--font-reading); font-size:21px; line-height:1.7; }
.stage-heading { margin-bottom:32px; }
.stage-heading > p { max-width:42em; line-height:1.9; }
.eyebrow::before { display:none; }
.case-heading { border-top:1px solid var(--line); padding-top:28px; }
.case-heading h2 { font-size:30px; }
.step-heading h3, .question label.question-title { font-family:var(--font-reading); font-weight:500; font-size:22px; }
.step-number { background:#fff; color:#6e86a4; border-color:#dce5f1; }
.step { border-top-color:#e8edf5; }
.question .english { color:#5f7088; font-size:11px; }
.question textarea { background:rgba(255,255,255,.92); border-color:#d6e0ee; border-radius:8px; box-shadow:0 3px 14px #3c5c8610; }
.question textarea:focus { border-color:#91aacb; }
.copy-block, .prompt-panel { border-color:#dee6f2; background:#f8faff; border-radius:8px; box-shadow:0 4px 18px #3b577007; }
.copy-heading, .prompt-toolbar { background:rgba(255,255,255,.85); border-bottom-color:#e5ebf4; }
.callout { border-left-width:2px; background:#f0f5fc; padding:16px 18px; }
.callout.note { background:#f6f8fc; }
.callout.warning { background:#fbf6f0; }
.primary, .primary-link { background:#456b99; border-color:#456b99; border-radius:6px; box-shadow:0 4px 12px #456b9914; }
.primary:hover, .primary-link:hover { background:#375980; }
.secondary, .icon-button { border-color:#dce5f0; background:rgba(255,255,255,.94); border-radius:6px; }
.challenge-banner { background:rgba(255,255,255,.92); backdrop-filter:blur(18px); border-bottom-color:#e3eaf4; }
.challenge-banner small { color:#5f7088; }
.challenge-banner strong { font-family:var(--font-reading); font-size:16px; }
.mode-option { border-color:#dfe7f2; border-radius:8px; background:rgba(255,255,255,.88); box-shadow:var(--reading-shadow); }
.mode-option h2 { font-size:28px; }
.mode-option.selected { background:#f5f8fe; border-color:#afc2dd; }
.mode-heading { font-size:10px; }
.scenario { border-color:#e0e7f1; background:#fff; border-radius:8px; box-shadow:0 7px 25px #38507408; }
.scenario:hover { transform:none; border-color:#b6c8e1; background:#fcfdff; }
.scenario h3 { font-family:var(--font-reading); font-size:24px; }
.scenario .card-hook { font-family:var(--font-reading); font-size:19px; line-height:1.8; color:#5c7394; }
.scenario-letter { color:#5f7088; font-size:27px; }
.document-thumb { transform:none; box-shadow:0 5px 15px #3c527818; }
.scenario.selected { background:#f7faff; border-color:#9db6d8; }
.scenario-dialog, .drawer, .confirm-dialog { border-color:#dde5f0; box-shadow:0 28px 100px #25395626; }
dialog::backdrop { background:rgba(50,65,85,.22); backdrop-filter:blur(7px); }
.scenario-header h2 { font-size:28px; }
.scenario-dialogue { background:#f3f6fc; }
.message-copy p { border-color:#e2e8f2; box-shadow:0 3px 10px #38557405; }
.human .message-copy p { background:#eaf0fa; border-color:#dae4f2; }
.scenario-brief h3 { font-family:var(--font-reading); font-size:17px; }
.knowledge-card { border-color:#e0e7f1; box-shadow:none; }
.knowledge-card h3 { font-family:var(--font-reading); font-size:18px; }
.knowledge-card.selected { background:#f3f7fe; border-color:#a8bdda; }
.selection-bar { background:rgba(255,255,255,.92); backdrop-filter:blur(22px); border-color:#d7e2f1; border-radius:8px; box-shadow:var(--reading-shadow); }
.boundary-zone { border-top-width:1px; }
.action-list { background:#f7f9fd; border-color:#d5e1f1; }
.action-card { border-color:#dfe6f0; border-radius:6px; box-shadow:0 3px 12px #3a557a05; }
.boundary-zone h3 { font-family:var(--font-reading); font-size:19px; }
.field-hint > summary { color:#5479a5; }
.hint-content { border-left-color:#d6e1ef; }
.test-tab { border-radius:6px; border-left:0; }
.test-tab[aria-current="true"] { background:#edf3fb; box-shadow:inset 0 0 0 1px #dce6f4; }
.test-complete { border-top-width:1px; }
.gallery-card { border-radius:8px; border-color:#dae4f1; box-shadow:var(--reading-shadow); }
.gallery-body h3 { font-family:var(--font-reading); font-size:25px; }
.finish h2, .finish-screen h1 { font-family:var(--font-reading); }
.stage-view, .question, .snapshot-row, .dialogue-message, .finish-mark, .test-complete { animation:none; }
.presentation-title { border-left:0; padding-left:10px; }
.presentation-title > span { font-size:11px; }
.presentation-title h1 { font-size:24px; }
.presentation-stage { border-radius:6px; overflow:hidden; box-shadow:0 18px 60px #344e7b14; }
.presentation-stage:fullscreen, .presentation-stage:-webkit-full-screen { border-radius:0; box-shadow:none; }
.presentation-header { border-bottom:0; }
.fullscreen-button { background:#456b99; border-color:#456b99; }
.chapter-dock { background:rgba(255,255,255,.88); border-color:#e0e7f1; box-shadow:var(--reading-shadow); }
.chapter-current strong { color:#304867; font-family:var(--font-interface); font-weight:500; }
.chapter-navigation button[aria-current="location"] { background:#edf2fa; color:#456b99; border-color:#d5e1f2; }
.chapter-lab { background:#edf3fb; color:#456b99; }
@media (max-width:800px) { #start h1,.intro h1 { font-size:29px; } .stage-heading h1 { font-size:27px; } .step-heading h3,.question label.question-title { font-size:21px; } .case-heading h2 { font-size:27px; } .presentation-title h1 { font-size:21px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; } }