/* 本地双视角改版，沿用正式版暖白、灰绿，不影响原入口。 */
.dual-dialog{width:min(1060px,94vw);max-height:90dvh;border:1px solid #d7d9cf;background:#f7f6ef;color:#35483c;padding:clamp(22px,4vw,48px);box-sizing:border-box;overflow:auto}
.dual-dialog::backdrop{background:rgba(26,42,33,.66);backdrop-filter:blur(9px)}
.dual-dialog h2{font-family:KaiTi,STKaiti,serif;font-weight:400;font-size:clamp(26px,3vw,40px);margin:8px 0 12px}
.dual-kicker{font-size:11px;letter-spacing:.18em;color:#7a8474}.dual-copy{font-size:14px;line-height:1.9;color:#747e70;max-width:680px}
.dual-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:28px 0}
.dual-item{display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:#efeee6;border:1px solid #d9ddd2;padding:20px;min-height:185px;color:#35483c;transition:background .2s,transform .2s}
.dual-item:hover{background:#e6eadd;transform:translateY(-3px)}.dual-item:focus-visible,.dual-actions button:focus-visible{outline:2px solid #687f62;outline-offset:4px}
.dual-item strong{font-family:KaiTi,STKaiti,serif;font-size:25px;font-weight:400;margin:12px 0}.dual-item small{line-height:1.7;color:#7b8276}.dual-item em{font-size:11px;margin-top:auto;padding-top:15px;font-style:normal;color:#71816a}
.dual-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.dual-actions button,.dual-open{border:1px solid #aab59f;background:transparent;color:#41583f;padding:11px 18px;font-size:13px}.dual-actions .dual-primary{background:#536a50;color:#fff;border-color:#536a50}.dual-close{float:right;background:none;border:0;font-size:25px;color:#737d70}
.dual-view-grid{grid-template-columns:1fr 1fr}.dual-view-grid .dual-item{min-height:220px}.dual-item img{width:100%;height:130px;object-fit:cover;margin-bottom:10px}.dual-detail-image{display:block;width:min(100%,640px);max-height:40vh;object-fit:contain;background:#e7e8df;margin:20px 0}
.dual-detail-video{width:100%;max-height:50vh;background:#18241d;display:block}.dual-detail-video[hidden],.dual-detail-image[hidden]{display:none}.dual-read{white-space:pre-line;line-height:2;max-width:720px;font-size:15px}.dual-draft{font-size:12px;color:#8b775e;border-left:2px solid #c1b297;padding-left:12px;line-height:1.8}
.dual-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0}.dual-toolbar span{font-size:12px;color:#75836c}.dual-open{padding:7px 12px}.dual-edit-options{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}.dual-epitaph{font-family:KaiTi,STKaiti,serif;font-size:clamp(23px,4vw,40px);line-height:2;padding:35px 0;animation:dualFade 2s ease both}@keyframes dualFade{from{opacity:0}to{opacity:1}}
.dual-discovery{position:absolute;z-index:15;width:34px;height:34px;border-radius:50%;border:1px solid #fff9;background:#f5f2da38;color:#fff;box-shadow:0 0 15px #f5ecc580;transform:translate(-50%,-50%);font-size:22px}.dual-discovery[hidden],.dual-open[hidden]{display:none!important}
.dual-tail-next{position:absolute;z-index:18;bottom:12%;left:50%;transform:translateX(-50%);padding:12px 20px;border:1px solid #b9c3ad66;background:#29362bc9;color:#eeeede;font-family:KaiTi,serif;white-space:nowrap}.dual-tail-next[hidden]{display:none!important}
.dual-turning{min-height:240px;display:flex;flex-direction:column;justify-content:center}.dual-turning:not([open]){display:none}.dual-turning h2{animation:dualFade .4s ease both}.dual-media-fade{animation:dualFade .35s ease both}
.dual-turning .dual-shortcuts{display:none}
@media(prefers-reduced-motion:reduce){.dual-turning h2,.dual-media-fade{animation:none}}
@media(max-width:700px){.dual-grid{grid-template-columns:1fr 1fr;gap:10px}.dual-item{padding:14px;min-height:155px}.dual-edit-options{grid-template-columns:1fr}.dual-view-grid{grid-template-columns:1fr 1fr}.dual-dialog{padding:22px}.dual-item strong{font-size:22px}.dual-item img{height:90px}}
@media(prefers-reduced-motion:reduce){.dual-epitaph{animation:none}.dual-item{transition:none}}
/* 日记用可选择的文字排版；字体取本机手写楷体，无需加载照片。 */
@font-face{font-family:SpringDiary;src:local('STKaiti'),local('KaiTi');font-display:swap}
.dual-diary-cover{box-sizing:border-box;width:100%;height:130px;display:grid;place-items:center;background:#dce1d3;border:1px solid #bec8b4;border-left:9px solid #a5b69e;color:#54644e;font-family:SpringDiary,KaiTi,serif;font-size:24px;letter-spacing:.16em;box-shadow:inset 0 0 0 7px #e7e9de}
.dual-diary-tabs{display:flex;gap:18px;flex-wrap:wrap;border-bottom:1px solid #d9ddce;margin:18px 0 24px}
.dual-diary-tabs button{border:0;border-bottom:2px solid transparent;padding:10px 0;background:none;color:#7a8371;font-size:13px}.dual-diary-tabs button[aria-current=page]{border-color:#6e825d;color:#3e5639}
.dual-diary-paper{box-sizing:border-box;max-width:720px;margin:auto;padding:28px clamp(24px,6vw,68px) 22px;background:#f5f0df;box-shadow:0 5px 22px #404f3910,inset 3px 0 7px #8a7c5010;border:1px solid #e1dccb;color:#53564b}
.dual-diary-meta{font-size:10px;letter-spacing:.16em;color:#949581}.dual-diary-paper h3{font:400 28px/1.6 SpringDiary,KaiTi,STKaiti,serif;margin:16px 0 18px;color:#45513f}
.dual-diary-hand{font:400 clamp(20px,2.2vw,25px)/1.9 SpringDiary,KaiTi,STKaiti,serif;white-space:pre-line;letter-spacing:.025em;margin:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(1.9em - 1px),#a3aa8c30 calc(1.9em - 1px),#a3aa8c30 1.9em)}
.dual-diary-paper footer{text-align:right;font-size:10px;letter-spacing:.2em;color:#91947e;margin-top:22px}.dual-diary-mode>.dual-actions{max-width:720px;margin:18px auto 0}.dual-actions button:disabled{opacity:.35;cursor:default}
.dual-report-view{display:block;max-width:100%;width:652px;margin:20px auto;padding:0;border:1px solid #d6d9ce;overflow:auto;background:white;cursor:zoom-in}.dual-report-view img{display:block;width:100%;height:auto}.dual-report-view.is-zoomed{cursor:zoom-out;max-height:65vh}.dual-report-view.is-zoomed img{width:1100px;max-width:none}
@media(max-width:700px){.dual-diary-paper{padding:24px}.dual-diary-cover{height:90px}.dual-diary-tabs{gap:14px}.dual-diary-hand{font-size:21px}}
.dual-shortcuts{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:18px}.dual-shortcuts button,.dual-toolbar>button{padding:7px 12px;border:1px solid #bdc7b5;color:#52694b;background:transparent;font-size:12px}.dual-archive details{border-top:1px solid #dce0d4;margin-top:22px;padding-top:16px}.dual-archive summary{cursor:pointer;font-size:15px;color:#4d6346}.dual-archive-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.dual-archive-row{display:flex;flex-direction:column;text-align:left;gap:8px;padding:15px;border:1px solid #d7ddcf;background:#efefe5;color:#3b5036;font-size:14px}.dual-archive-row small{font-size:11px;color:#7b8772}.dual-replay-seek{display:block;width:100%;accent-color:#697f58;margin:20px 0}.dual-save-status{padding:12px 16px;background:#e7ebdf;color:#52654a;font-size:13px;line-height:1.8}@media(max-width:600px){.dual-archive-list{grid-template-columns:1fr}}
/* 视角入口用同一场景、无字幕的原片人物照，卡片保留足够的面部空间。 */
.dual-view-grid{gap:22px;margin:26px 0}.dual-view-grid .dual-item{padding:0 0 20px;overflow:hidden;background:#f1f1e9;border-color:#d4dccd;min-width:0}.dual-view-grid .dual-item img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:50% 32%;margin:0 0 9px}.dual-view-grid .dual-item strong{font-size:28px;margin:12px 22px}.dual-view-grid .dual-item small{margin:0 22px;font-size:13px;line-height:1.9}.dual-view-grid .dual-item em{margin:0 22px;padding-top:20px;letter-spacing:.08em}.dual-view-grid .dual-item:focus-visible{outline-offset:5px}
@media(max-width:700px){.dual-view-grid{gap:12px}.dual-view-grid .dual-item img{aspect-ratio:3/4;object-position:50% 30%}.dual-view-grid .dual-item strong{font-size:23px;margin:10px 13px}.dual-view-grid .dual-item small,.dual-view-grid .dual-item em{margin-left:13px;margin-right:13px}.dual-view-grid .dual-item small{font-size:12px}}
.dual-narrative{width:min(920px,94vw);min-height:min(580px,82dvh);padding:clamp(30px,6vw,70px);background:radial-gradient(ellipse at 85% 10%,#e6ecddaa,transparent 60%),#f7f6ef;display:flex;flex-direction:column;justify-content:center}.dual-narrative:not([open]){display:none}.dual-narrative .dual-shortcuts{margin-bottom:38px}.dual-narrative .dual-kicker{font-size:10px;letter-spacing:.24em}.dual-narrative h2{font-size:clamp(27px,4vw,42px);line-height:1.6;margin:12px 0 25px}.dual-narrative>.dual-copy:empty{display:none}.dual-narrative>.dual-read{font:400 clamp(18px,2.3vw,23px)/2.2 STSong,SimSun,serif;color:#596650;max-width:660px;white-space:pre-line;margin:0 0 24px;animation:dualFade .8s ease both}.dual-narrative .dual-actions{margin-top:25px}.dual-narrative .dual-primary{padding:13px 25px;letter-spacing:.08em}
.dual-scene-curtain{position:absolute;inset:0;z-index:25;pointer-events:none;background:#edf0e6;opacity:0;transition:opacity .6s ease}.dual-scene-curtain.is-active{opacity:1;transition:none}.dual-watch-progress{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:8px 0 14px;color:#7b8772;font-size:11px}.dual-watch-progress input{flex:1;min-width:130px;accent-color:#6c825d}.dual-watch-progress small{font-size:10px;color:#89917f}.dual-watch-progress span{font-variant-numeric:tabular-nums}.dual-watch-progress[hidden]{display:none!important}
@media(prefers-reduced-motion:reduce){.dual-narrative>.dual-read{animation:none}.dual-scene-curtain{transition:none}}
.director-completion{width:min(880px,94vw);max-height:92dvh;overflow:auto;box-sizing:border-box;border:1px solid #d1d9c9;padding:clamp(24px,4vw,50px);background:radial-gradient(ellipse at 90% 0%,#e3ead8aa,transparent 60%),#f8f7ef;color:#41543c;box-shadow:0 22px 90px #15251833}.director-completion::backdrop{background:#24382ac9;backdrop-filter:blur(8px)}.work-kicker{font-size:10px;letter-spacing:.2em;color:#829078;margin:0 0 20px}.director-completion h2{font:400 clamp(27px,3.7vw,38px)/1.6 STKaiti,KaiTi,serif;margin:0 0 12px}.work-intro{font-size:14px;line-height:1.9;color:#7c8675;margin:0 0 25px}.work-recap{border-left:2px solid #b1bea2;background:#e9ede141;padding:17px 22px;margin:0 0 26px}.work-role{font-size:10px;letter-spacing:.1em;color:#87917e}.work-recap h3{font:400 24px STKaiti,KaiTi,serif;margin:9px 0}.work-recap p{font-size:12px;line-height:1.9;color:#7c8672;margin:8px 0 0}.work-recap .work-path{font-size:11px;color:#8c967e}.work-note-form label{display:block;font-size:13px;color:#5d6f51;line-height:1.8;margin-bottom:18px}.work-note-form input,.work-note-form textarea{display:block;box-sizing:border-box;width:100%;margin-top:8px;border:1px solid #c9d2bf;border-radius:2px;background:#fffef8a6;color:#42563b;padding:13px 15px;font:14px/1.9 'Microsoft YaHei',sans-serif}.work-note-form textarea{resize:vertical;min-height:130px}.work-note-form textarea::placeholder{color:#a0a78f}.work-note-form input:focus-visible,.work-note-form textarea:focus-visible{outline:2px solid #718862;outline-offset:3px}.work-storage-note{font-size:11px;color:#969d8b;line-height:1.8;margin:4px 0 16px}.work-form-actions{display:flex;align-items:center;justify-content:space-between;gap:15px}.director-completion .work-primary{background:#556d48;border:1px solid #556d48;color:#fffdf5;padding:12px 22px;font-size:13px}.work-count{font-size:10px;color:#919c86}.work-note-status{font-size:11px;line-height:1.8;color:#7b8c6d;min-height:20px}.work-navigation{display:flex;flex-wrap:wrap;gap:12px 20px;border-top:1px solid #dce2d3;padding-top:20px;margin-top:28px}.work-navigation button{border:0;border-bottom:1px solid #bac7ac;background:transparent;color:#6d805d;border-radius:0;padding:7px 0;font-size:11px}.work-gallery{border-top:1px solid #dce2d3;margin-top:22px;padding-top:18px}.work-gallery summary{font-size:12px;color:#7d8d70;cursor:pointer}.work-gallery article{margin-top:16px;padding:16px;background:#edf0e5;border:1px solid #dce3d0}.work-gallery h4{font-weight:400;margin:0 0 7px;font-size:14px}.work-gallery small{font-size:10px;color:#89997d}.work-gallery article p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.9;margin-bottom:0;color:#748469}@media(prefers-reduced-motion:no-preference){.director-completion[open]{animation:dualFade .5s ease both}}

.dual-role-card{min-width:0}.dual-role-card>.dual-item{width:100%}.dual-role-card>.dual-actions{margin-top:12px}.dual-known{background:#e9ede1;padding:14px 18px;margin:18px 0;color:#596a50;font-size:13px;line-height:1.9}.dual-known summary{cursor:pointer}.dual-known p{max-width:680px}.dual-discovery{width:56px;height:56px;font-size:14px;background:#344934d9;animation:discoveryPulse 2s ease-in-out infinite}.dual-discovery:focus-visible{outline:3px solid #fff;outline-offset:5px}@keyframes discoveryPulse{50%{box-shadow:0 0 0 10px #edf3db30}}.dual-entry-caption{position:absolute;left:5%;top:5%;max-width:min(540px,80%);padding:14px 20px;background:#f7f6efeb;color:#4a5b43;font-size:14px;line-height:1.9;white-space:pre-line;z-index:12;pointer-events:none}.dual-entry-caption[hidden]{display:none}.work-author{border-top:1px solid #d5ddce;margin:24px 0;padding-top:18px}.work-author h3{font:400 22px STKaiti,KaiTi,serif}.work-author p{font-size:13px;line-height:2;color:#718067}@media(prefers-reduced-motion:reduce){.dual-discovery{animation:none}}

.work-author .work-author-question{font:400 clamp(20px,2.5vw,26px)/1.8 STKaiti,KaiTi,serif;color:#4e6547;margin:20px 0 24px}.work-author>p{max-width:660px;margin:0 0 18px}.work-author h3{font-size:14px;letter-spacing:.12em;color:#88937c}

.dual-research-paper{max-width:740px;margin:24px auto;background:#f1e7ca;border:1px solid #d4c6a3;padding:28px clamp(22px,5vw,55px);color:#655f49;box-shadow:0 6px 22px #62583213;transform:rotate(-.25deg)}.dual-research-diagram svg{display:block;width:100%;height:auto;max-height:260px}.dual-research-equations{text-align:center;font:30px/1.6 SpringDiary,KaiTi,serif;margin:0 0 20px}.dual-research-hand{font:clamp(19px,2.2vw,24px)/1.9 SpringDiary,KaiTi,serif;white-space:pre-line;letter-spacing:.02em;margin:12px 0}.dual-research-hand s{opacity:.55}.dual-research-balance{padding:14px 0;border-top:1px solid #b6aa854d;border-bottom:1px solid #b6aa854d;font:clamp(21px,2.6vw,27px)/1.9 SpringDiary,KaiTi,serif}.dual-research-paper footer{text-align:center;font:27px/2 SpringDiary,KaiTi,serif;color:#817454;margin-top:22px}

.dual-dialog.dual-diary-mode{width:min(900px,94vw);max-width:900px}.dual-research-diagram svg{max-height:220px}

.work-author .work-author-perspective{padding:12px 16px;border-left:2px solid #b2bea4;background:#e8edde66;font-size:12px;line-height:1.9;color:#7b886f}

/* 合照完成后才出现的两个调查对象；手稿与研究笔记分开。 */
.dual-ending-objects{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0 8px}
.dual-ending-object{display:flex;flex-direction:column;gap:12px;text-align:left;padding:12px!important;border:1px solid #b8bfad!important;background:#faf9f2!important;color:#374834!important;line-height:1.7}
.dual-ending-object img{width:100%;height:138px;object-fit:cover}
.dual-ending-object small{display:block;font-size:12px;opacity:.8}
.dual-manuscript{box-sizing:border-box;width:100%;height:138px;padding:16px;color:#67705c;background:repeating-linear-gradient(#f2eddf 0px,#f2eddf 25px,#dfdece 26px);font-family:KaiTi,STKaiti,serif;white-space:pre-line;font-size:14px;overflow:hidden}
@media(max-width:420px){.dual-ending-objects{grid-template-columns:1fr}.dual-ending-object img,.dual-manuscript{height:125px}}
