/* 固定 1280 × 720 坐标系；字体由入口页的本地 @font-face 提供。 */
:root{--jpk-accent:#247960;--jpk-ink:#163a30;--jpk-micro:180ms;--jpk-ease:cubic-bezier(.215,.61,.355,1)}
html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#101513}
body{font-family:jpk-yahei,"Microsoft YaHei",sans-serif}
.jpk-player,.jpk-viewport{position:fixed;inset:0;overflow:hidden;background:#101513}
.jpk-viewport{display:block;outline:0}
.jpk-stage{position:absolute;width:1280px;height:720px;left:50%;top:50%;transform-origin:0 0;overflow:hidden;background:#fff;isolation:isolate}
.jpk-stage[data-frame=immersive]{background:#0c1713}
.jpk-stage[data-frame=immersive]>.jpk-background{display:none}
.jpk-slide{position:absolute;inset:0;overflow:hidden}
.jpk-background{position:absolute;inset:0;width:1280px;height:720px;object-fit:fill;pointer-events:none;user-select:none;z-index:0}
.jpk-element,.jpk-interaction{position:absolute;box-sizing:border-box;margin:0;z-index:1}
.jpk-element{white-space:pre-wrap;overflow:visible;font-family:jpk-kaiti,"STKaiti",serif;font-size:32px;line-height:1.12;letter-spacing:0;text-align:left;word-break:normal;overflow-wrap:normal}
.jpk-text{display:flex;flex-direction:column}
.jpk-text-inner{width:100%;box-sizing:border-box;min-height:0}
.jpk-element p{margin:0;padding:0}
.jpk-image{object-fit:fill;display:block}
.jpk-svg svg,.jpk-line svg,.jpk-shape-art{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible;pointer-events:none}
.jpk-shape-text{position:absolute;inset:0;display:flex;flex-direction:column;box-sizing:border-box}
.jpk-hidden-step{visibility:hidden;pointer-events:none}
.jpk-custom-content{position:absolute;inset:0;z-index:2;pointer-events:none}
.jpk-custom-content>*{pointer-events:auto}
.jpk-interaction{font-family:jpk-kaiti,"STKaiti",serif;font-size:32px;line-height:1.4;color:var(--jpk-ink);overflow:visible}
.jpk-interaction-title{font-family:jpk-heiti,"SimHei",sans-serif;font-size:40px;margin:0 0 16px;font-weight:400}
.jpk-interaction button,.jpk-interaction input{font:inherit}
.jpk-interaction button{border:1px solid #78a392;border-radius:10px;background:#fff;color:var(--jpk-ink);padding:10px 18px;cursor:pointer;font-family:jpk-kaiti,"STKaiti",serif;font-size:24px;line-height:1.3;transition:background-color var(--jpk-micro) ease,transform 120ms ease,box-shadow var(--jpk-micro) ease}
.jpk-interaction button:active{transform:scale(.98)}
.jpk-interaction button:focus-visible,.jpk-interaction input:focus-visible{outline:3px solid #c89925;outline-offset:5px}
.jpk-interaction button:disabled{cursor:default;opacity:.6}
.jpk-interaction button[aria-pressed=true]{background:#e4f1e9;border-color:#247960}
.jpk-counter-number{font-family:jpk-yahei,sans-serif;font-variant-numeric:tabular-nums;font-size:76px;line-height:1.1;font-weight:700;color:#247960;margin:0 0 14px;white-space:nowrap}
.jpk-counter-controls{display:flex;gap:12px;align-items:center}
.jpk-reveal-answer{padding:20px 24px;margin-top:14px;background:#edf5ee;border-left:5px solid #247960;border-radius:0 10px 10px 0;font-family:jpk-kaiti,serif;font-size:32px}
.jpk-reveal-answer[hidden]{display:none}
.jpk-quiz-question{font-family:jpk-kaiti,serif;font-size:32px;margin:0 0 20px}
.jpk-quiz-options{display:grid;gap:12px}
.jpk-interaction .jpk-quiz-option{text-align:left;display:flex;gap:14px;align-items:flex-start;font-size:32px}
.jpk-quiz-letter{font-family:jpk-yahei,sans-serif;font-size:21px;font-weight:700;min-width:25px;color:#247960}
.jpk-quiz-option[data-result=correct]{background:#e0f1e4;border-color:#247960}
.jpk-quiz-option[data-result=wrong]{background:#fff2ea;border-color:#bc673e}
.jpk-feedback{margin:14px 0 0;min-height:34px;font-family:jpk-kaiti,serif;font-size:32px}
.jpk-feedback[data-result=wrong]{color:#92451f}
.jpk-slider-label{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:14px;font-size:32px}
.jpk-slider-value{font-variant-numeric:tabular-nums;font-weight:700;color:#247960;white-space:nowrap}
.jpk-slider-input{display:block;width:100%;accent-color:#247960;cursor:pointer;height:30px;margin:0}
.jpk-slider-graphic{width:100%;height:calc(100% - 104px);min-height:100px;margin-top:16px;display:block;overflow:visible}
.jpk-timeline-track{display:flex;align-items:flex-start;gap:14px;margin:0 0 22px}
.jpk-timeline-step{flex:1;min-width:0;font-family:jpk-kaiti,serif;font-size:32px;position:relative;text-align:center;padding-top:0}
.jpk-timeline-step button{display:block;width:48px;height:48px;border-radius:50%;padding:0;margin:0 auto 10px;font-family:jpk-yahei,sans-serif;font-size:23px;position:relative;z-index:1}
.jpk-timeline-step:not(:last-child):after{content:"";position:absolute;height:3px;top:23px;left:calc(50% + 28px);width:calc(100% - 43px);background:#bbd4c7}
.jpk-timeline-step[data-active=true] button{background:#247960;color:#fff;border-color:#247960}
.jpk-timeline-detail{min-height:72px;background:#edf5ee;border-radius:12px;padding:20px 24px;font-family:jpk-kaiti,serif;font-size:32px;margin:0 0 16px}
.jpk-timeline-controls{display:flex;gap:12px}
.jpk-controls{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #ffffff2b;border-radius:14px;background:#13231ff0;box-shadow:0 8px 30px #0005;color:#fff;font:13px/1.3 jpk-yahei,sans-serif;z-index:50;transition:opacity var(--jpk-micro) ease,transform var(--jpk-micro) var(--jpk-ease);white-space:nowrap}
.jpk-controls button{height:36px;min-width:36px;border:0;border-radius:8px;padding:0 10px;background:transparent;color:#fff;font:inherit;cursor:pointer}
.jpk-controls button:focus-visible{outline:2px solid #f4d076;outline-offset:2px}
.jpk-controls button:disabled{opacity:.35;cursor:default}
.jpk-controls .jpk-page-label{min-width:69px;text-align:center;font-variant-numeric:tabular-nums;color:#deeee6;padding:0 3px}
.jpk-controls .jpk-divider{height:18px;width:1px;background:#ffffff2b;margin:0 3px}
.jpk-controls .jpk-deck-title{max-width:200px;overflow:hidden;text-overflow:ellipsis;color:#c6d9d0;padding:0 10px 0 2px}
.jpk-controls[data-hidden=true]{opacity:0;transform:translate(-50%,8px);pointer-events:none}
.jpk-player[data-pure=true] .jpk-controls{display:none}
.jpk-player[data-pure=true] .jpk-viewport{cursor:none}
.jpk-player[data-pure=true] .jpk-interaction,.jpk-player[data-pure=true] .jpk-interaction *{cursor:auto}
.jpk-player[data-pure=true] .jpk-interaction button{cursor:pointer}
.jpk-toast{position:fixed;left:50%;top:24px;transform:translateX(-50%);padding:11px 18px;border-radius:9px;background:#162a23f0;color:#fff;font:14px/1.5 jpk-yahei,sans-serif;z-index:100;max-width:calc(100vw - 48px);text-align:center;pointer-events:none}
.jpk-toast[hidden]{display:none}
.jpk-overview{position:fixed;inset:0;z-index:80;background:#10241ff5;color:#fff;padding:32px clamp(20px,5vw,90px);box-sizing:border-box;overflow:auto}
.jpk-overview[hidden]{display:none}
.jpk-overview-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}
.jpk-overview-header h2{font:24px/1.3 jpk-yahei,sans-serif;margin:0}
.jpk-overview-header button{padding:9px 16px;border:1px solid #8aa397;border-radius:8px;background:transparent;color:white;font:14px jpk-yahei,sans-serif;cursor:pointer}
.jpk-overview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:24px}
.jpk-thumbnail-button{background:transparent;border:2px solid transparent;border-radius:8px;padding:4px;cursor:pointer;min-width:0;text-align:left;color:#d4e7dc;font:14px jpk-yahei,sans-serif}
.jpk-thumbnail-button[aria-current=true]{border-color:#e7c777}
.jpk-thumbnail-button:focus-visible{outline:3px solid #e7c777;outline-offset:4px}
.jpk-thumbnail-frame{aspect-ratio:16/9;position:relative;overflow:hidden;background:white;pointer-events:none;border-radius:3px}
.jpk-thumbnail-stage{position:absolute;left:0;top:0;width:1280px;height:720px;transform-origin:0 0;pointer-events:none}
.jpk-thumbnail-stage[data-frame=immersive]{background:#0c1713}
.jpk-thumbnail-stage[data-frame=immersive]>.jpk-background{display:none}
.jpk-thumbnail-caption{display:block;margin:9px 3px 3px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.jpk-thumbnail-interaction{background:#edf5ee;padding:14px;color:#247960;border:1px solid #cadbcf;border-radius:8px}
.jpk-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(hover:hover) and (pointer:fine){.jpk-controls button:hover{background:#ffffff18}.jpk-interaction button:hover{box-shadow:0 3px 10px #183f2b12;background:#f5faf6}.jpk-thumbnail-button:hover{background:#ffffff0b}}
@media(max-width:620px){.jpk-controls{bottom:9px;gap:2px;padding:5px}.jpk-controls .jpk-deck-title,.jpk-controls .jpk-optional{display:none}.jpk-controls button{padding:0 7px}.jpk-overview{padding:20px}.jpk-overview-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}}
@media(prefers-reduced-motion:reduce){.jpk-controls,.jpk-interaction button{transition:none}.jpk-interaction button:active{transform:none}.jpk-element,.jpk-interaction,.jpk-reveal-answer,.jpk-timeline-detail{animation:none;transition:none}}
@media print{html,body{overflow:visible;height:auto;background:#fff}.jpk-controls,.jpk-overview,.jpk-toast{display:none}.jpk-player,.jpk-viewport{position:static;overflow:visible;background:#fff}.jpk-stage{position:relative;left:0;top:0;transform:none!important}}
