:root{font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:#163649;background:#edf2f4;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer}button:focus-visible{outline:3px solid #007fbb;outline-offset:4px}.experience{height:100vh;min-height:620px;position:relative;overflow:hidden;background:linear-gradient(125deg,#f5f8fa,#e7eff1)}.viewport{position:absolute;inset:0 0 75px;touch-action:pan-y}.viewport canvas{display:block;width:100%;height:100%}.intro{position:absolute;top:6%;left:4.7%;pointer-events:none}.eyebrow{font-size:10px;font-weight:750;letter-spacing:.2em;color:#0877b6;margin:0 0 17px}.intro h1{margin:0;font-size:clamp(29px,3.3vw,52px);font-weight:750;letter-spacing:-.045em;line-height:1.22}.intro h1 span{color:#1277b9}.intro-description{font-size:13px;color:#617987;line-height:1.9;margin-top:18px}.view-actions{position:absolute;right:4.5%;top:30px;display:flex;gap:9px}.view-actions button{border:1px solid #c8d7df;background:#ffffffdf;color:#174260;padding:11px 16px;border-radius:2px;font-size:12px;min-height:42px}.view-actions button span{margin-left:15px}#pause{width:44px;padding:0;font-size:17px}.view-actions button:hover{background:#fff}.scene-caption{position:absolute;left:4.7%;bottom:114px;display:flex;gap:17px;max-width:650px;padding:19px 24px 18px 0;pointer-events:none;background:linear-gradient(90deg,#f3f7f9f2 60%,#f3f7f900)}.scene-number{font-size:44px;font-weight:300;color:#1467ac;line-height:1}.scene-kicker{margin:0 0 7px;font-size:9px;letter-spacing:.2em;color:#167fb6}.scene-caption h2{font-size:23px;margin:0 0 8px;letter-spacing:-.025em}.scene-caption p:not(.scene-kicker){font-size:12px;line-height:1.7;color:#536f7f;margin:0}.substeps{display:flex;gap:14px;margin-top:12px;min-height:17px}.substeps span{font-size:10px;color:#8598a3;border-bottom:2px solid transparent;padding-bottom:4px}.substeps .active{color:#0969a7;border-color:#19bba7}.diagram-note{position:absolute;right:4.5%;bottom:88px;font-size:9px;color:#738b99}.chapter-nav{position:absolute;bottom:0;left:0;width:100%;display:grid;grid-template-columns:repeat(6,1fr);background:#ffffffed;border-top:1px solid #d6e1e7;padding:0 4.5%;height:76px}.chapter-nav button{position:relative;display:flex;align-items:center;gap:13px;text-align:left;border:0;border-right:1px solid #e3eaee;background:transparent;color:#72848e;padding:0 20px;font-size:13px;white-space:nowrap}.chapter-nav button:first-child{border-left:1px solid #e3eaee}.chapter-nav b{font-size:10px;font-weight:400;color:#97aab5}.chapter-nav button.active{color:#075387;background:#f1f7fb;font-weight:700}.chapter-nav button:before{content:"";position:absolute;bottom:0;left:0;width:var(--progress,0%);height:3px;background:#1686c0}.chapter-nav button:hover{background:#edf5f9;color:#075387}.label{position:absolute;transform:translate(-50%,-100%);white-space:nowrap;background:#fffffff2;border:1px solid #d9e6ec;border-radius:2px;padding:7px 11px;color:#315267;font-size:10px;box-shadow:0 3px 15px #44678313}.label b{color:#147bb9;font-size:9px;margin-right:7px}.label:after{content:"";position:absolute;width:5px;height:5px;border:3px solid #fff;background:#158bbf;border-radius:50%;bottom:-18px;left:calc(50% - 5px);box-shadow:0 0 0 1px #1684be}.loading{position:absolute;inset:0;display:grid;align-content:center;justify-content:center;text-align:center;color:#568098;font-size:12px}.loading span{border:2px solid #d0e2eb;border-top-color:#157cbd;width:32px;height:32px;border-radius:50%;animation:spin 1s linear infinite;justify-self:center}@keyframes spin{to{transform:rotate(360deg)}}.fallback{position:absolute;inset:200px 7% 230px 40%;z-index:0}.fallback[hidden]{display:none}.fallback img{width:100%;height:100%;object-fit:cover;opacity:.8}.fallback p{font-size:11px;background:#fff;padding:12px}.intro,.view-actions,.scene-caption,.chapter-nav,.diagram-note{z-index:2}.labels{pointer-events:none;position:absolute;inset:0 0 75px;overflow:hidden}.experience.focused .intro h1{font-size:30px}.experience.focused .intro-description{display:none}.experience.focused .intro .eyebrow{margin-bottom:10px}.experience.focused .intro{opacity:.85}html[lang=en] .intro h1{font-size:clamp(27px,3vw,46px)}html[lang=en] .chapter-nav button{font-size:11px;padding-inline:13px;gap:8px}html[lang=en] .scene-caption{max-width:620px}
@media(max-width:900px){.chapter-nav{padding:0 15px}.chapter-nav button{padding:0 11px;font-size:11px;gap:7px}.intro{left:25px;top:28px}.view-actions{right:25px;top:28px}.intro-description{font-size:11px}.scene-caption{left:25px;bottom:113px}.scene-caption h2{font-size:20px}.diagram-note{right:25px}}
@media(max-width:600px){.experience{min-height:690px}.viewport{inset:100px -40px 210px}.intro{top:24px;left:20px}.intro h1,.experience.focused .intro h1{font-size:27px}.eyebrow{font-size:8px;margin-bottom:12px}.intro-description{display:none}.view-actions{top:25px;right:15px;gap:5px}.view-actions button{font-size:10px;padding:9px}#pause{width:34px}.scene-caption{bottom:145px;left:20px;right:15px;padding:12px 0;gap:11px;max-width:none;background:transparent}.scene-number{font-size:34px}.scene-caption h2{font-size:18px}.scene-caption p:not(.scene-kicker){font-size:11px}.scene-kicker{font-size:8px}.substeps{gap:10px;margin-top:8px}.substeps span{font-size:9px}.diagram-note{bottom:125px;left:20px;right:auto;font-size:8px}.chapter-nav{height:116px;grid-template-columns:repeat(3,1fr);padding:0 12px}.chapter-nav button{padding:0 7px;font-size:10px;border-bottom:1px solid #e3eaee}.chapter-nav b{font-size:9px}.labels{inset:100px -40px 210px}.label{font-size:8px;padding:5px 7px}.label b{font-size:8px;margin-right:4px}html[lang=en] .intro h1{font-size:24px}html[lang=en] .chapter-nav button{font-size:9px;gap:5px;padding:0 5px}.fallback{inset:190px 20px 290px}.experience.focused .intro{opacity:1}}
@media(prefers-reduced-motion:reduce){.loading span{animation:none}}
.seek{position:absolute;z-index:4;bottom:72px;left:4.5%;width:91%;height:10px;margin:0;appearance:none;background:transparent;cursor:ew-resize;opacity:.65}.seek::-webkit-slider-runnable-track{height:2px;background:#aec9d8}.seek::-webkit-slider-thumb{appearance:none;width:9px;height:9px;margin-top:-3.5px;border-radius:50%;background:#117cb9;border:2px solid white;box-shadow:0 0 0 1px #117cb9}.seek:disabled{opacity:0;pointer-events:none}.seek:focus-visible{outline:2px solid #1682b8;outline-offset:4px}.detail-label{border-color:#1cabb6;color:#126581}@media(max-width:600px){.seek{bottom:112px}}
.chapter-nav{grid-template-columns:repeat(6,minmax(0,1fr))}.chapter-nav button{min-width:0;white-space:normal;line-height:1.35}.chapter-nav button b{flex-shrink:0}@media(max-width:600px){.chapter-nav{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.view-actions{top:112px}.viewport,.labels{top:140px}.experience.focused .intro{display:none}.experience.focused .view-actions{top:20px}.experience.focused .viewport,.experience.focused .labels{top:60px}}

/* Append after animation/cover.css. Shared sizing for Chinese and English. */
.intro h1,
html[lang=en] .intro h1 {
  font-size: clamp(44px, 4.1vw, 64px);
  line-height: 1.18;
  letter-spacing: -.04em;
}
.eyebrow {
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: .17em;
  margin-bottom: 17px;
}
.intro-description {
  font-size: 17px;
  line-height: 1.75;
  margin-top: 19px;
  color: #526e7e;
}
.experience.focused .intro h1,
html[lang=en] .experience.focused .intro h1 {
  font-size: 36px;
}
.view-actions button {
  min-height: 44px;
  font-size: 14px;
  line-height: 1.4;
  padding: 10px 15px;
}
#pause { width: 46px; font-size: 20px; }

.scene-caption,
html[lang=en] .scene-caption {
  bottom: 140px;
  max-width: min(800px, 64%);
  gap: 20px;
  padding: 18px 25px 18px 0;
}
.scene-caption > div { min-width: 0; }
.scene-number { font-size: 52px; flex: 0 0 auto; }
.scene-kicker {
  font-size: 11px;
  line-height: 1.45;
  letter-spacing: .16em;
  margin-bottom: 8px;
}
.scene-caption h2 {
  font-size: 28px;
  line-height: 1.35;
  margin-bottom: 10px;
  text-wrap: pretty;
}
.scene-caption p:not(.scene-kicker) {
  font-size: 16px;
  line-height: 1.7;
  color: #496674;
  text-wrap: pretty;
}
.substeps {
  flex-wrap: wrap;
  column-gap: 18px;
  row-gap: 5px;
  margin-top: 13px;
  min-height: 22px;
}
.substeps span { font-size: 13px; line-height: 1.4; padding-bottom: 4px; }
.diagram-note {
  bottom: 119px;
  max-width: 26%;
  margin: 0;
  font-size: 11px;
  line-height: 1.55;
  color: #5e7887;
}

.chapter-nav { height: 88px; }
.chapter-nav button,
html[lang=en] .chapter-nav button {
  font-size: 16px;
  line-height: 1.4;
  gap: 10px;
  padding: 0 16px;
  overflow-wrap: normal;
}
.chapter-nav b { font-size: 12px; }
.viewport,
.labels { bottom: 88px; }
.seek { bottom: 91px; height: 18px; }
.seek::-webkit-slider-thumb { width: 12px; height: 12px; margin-top: -5px; }
.label { font-size: 12px; line-height: 1.4; padding: 7px 10px; }
.label b { font-size: 11px; }
.loading { font-size: 15px; }
.fallback p { font-size: 14px; line-height: 1.6; }

@media (min-width: 1101px) and (max-height: 720px) {
  /* Wide, shallow iframe: retain the large type without joining the captions. */
  .intro { top: 4.5%; }
  .intro h1,
  html[lang=en] .intro h1 { font-size: clamp(44px, 4vw, 60px); }
}

@media (max-width: 1100px) and (min-width: 601px) {
  .intro h1,
  html[lang=en] .intro h1 { font-size: clamp(38px, 4.65vw, 52px); }
  .intro-description { font-size: 16px; }
  .chapter-nav { padding-inline: 18px; }
  .chapter-nav button,
  html[lang=en] .chapter-nav button { font-size: 14px; padding-inline: 10px; gap: 7px; }
  .scene-caption,
  html[lang=en] .scene-caption { max-width: calc(100% - 50px); bottom: 146px; }
  .scene-caption h2 { font-size: 26px; }
  .scene-caption p:not(.scene-kicker) { font-size: 16px; }
  .diagram-note { left: 25px; right: 25px; max-width: none; bottom: 118px; }
}

@media (max-width: 600px) {
  /* Keep the lower UI in separate bands: caption, note, seek, two-row nav. */
  .intro { top: 22px; left: 20px; right: 20px; }
  .intro h1,
  html[lang=en] .intro h1,
  .experience.focused .intro h1,
  html[lang=en] .experience.focused .intro h1 {
    font-size: 32px;
    line-height: 1.2;
    letter-spacing: -.035em;
  }
  .eyebrow { font-size: 10px; line-height: 1.4; margin-bottom: 10px; letter-spacing: .14em; }
  .intro-description { font-size: 14px; }
  .view-actions { top: 132px; right: 18px; gap: 7px; }
  .view-actions button { font-size: 12px; min-height: 42px; padding: 9px 12px; }
  .view-actions button span { margin-left: 10px; }
  #pause { width: 42px; font-size: 18px; }
  .experience.focused .view-actions { top: 18px; }
  .viewport,
  .labels { top: 178px; bottom: 294px; left: -24px; right: -24px; }
  .experience.focused .viewport,
  .experience.focused .labels { top: 66px; }

  .scene-caption,
  html[lang=en] .scene-caption {
    left: 20px;
    right: 18px;
    bottom: 196px;
    max-width: none;
    gap: 10px;
    padding: 12px;
    background: #f2f6f8ed;
  }
  .scene-number { font-size: 36px; line-height: 1.1; }
  .scene-kicker { font-size: 10px; line-height: 1.4; letter-spacing: .12em; margin-bottom: 7px; }
  .scene-caption h2 { font-size: 22px; line-height: 1.35; margin-bottom: 8px; }
  .scene-caption p:not(.scene-kicker) { font-size: 14px; line-height: 1.6; }
  .substeps { column-gap: 13px; row-gap: 4px; margin-top: 9px; min-height: 20px; }
  .substeps span { font-size: 11px; line-height: 1.4; padding-bottom: 3px; }
  .diagram-note {
    left: 20px;
    right: 18px;
    bottom: 154px;
    max-width: none;
    font-size: 10px;
    line-height: 1.5;
  }
  .chapter-nav { height: 128px; padding-inline: 12px; }
  .chapter-nav button,
  html[lang=en] .chapter-nav button {
    font-size: 13px;
    line-height: 1.35;
    padding-inline: 7px;
    gap: 6px;
  }
  .chapter-nav b { font-size: 10px; }
  .seek { bottom: 132px; height: 18px; }
  .label { font-size: 11px; line-height: 1.35; padding: 5px 7px; }
  .label b { font-size: 10px; margin-right: 4px; }
  .fallback { inset: 182px 20px 304px; }
}

@media (max-width: 400px) {
  .intro { top: 20px; left: 16px; right: 16px; }
  .intro h1,
  html[lang=en] .intro h1,
  .experience.focused .intro h1,
  html[lang=en] .experience.focused .intro h1 { font-size: 30px; }
  .eyebrow { font-size: 9px; letter-spacing: .12em; }
  .view-actions { top: 124px; right: 16px; gap: 6px; }
  .view-actions button { font-size: 12px; padding-inline: 10px; }
  .viewport,
  .labels { top: 169px; left: -18px; right: -18px; }
  .scene-caption,
  html[lang=en] .scene-caption { left: 16px; right: 16px; bottom: 194px; gap: 8px; }
  .scene-number { font-size: 32px; }
  .scene-kicker { font-size: 9px; letter-spacing: .1em; margin-bottom: 6px; }
  .scene-caption h2 { font-size: 21px; margin-bottom: 7px; }
  .substeps { column-gap: 10px; row-gap: 3px; margin-top: 8px; }
  .diagram-note { left: 16px; right: 16px; }
  .chapter-nav { padding-inline: 8px; }
  .chapter-nav button,
  html[lang=en] .chapter-nav button { font-size: 12px; padding-inline: 5px; gap: 5px; }
  .label { font-size: 10px; }
  .label b { font-size: 9px; }
}
