:root{color-scheme:dark;--bg:#03080f;--surface:#09121e;--line:#1b2b3e;--cyan:#67d9e8;--muted:#6c7d91;--white:#e8f0f5;font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--white);min-height:100svh}button,a,select,input{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}button{border:0;background:none}button[disabled]{opacity:.35;cursor:default}a{color:inherit;text-decoration:none}button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.app{width:min(100%,1920px);margin:auto;padding:0 32px 20px}.topbar{height:76px;display:flex;align-items:center;gap:24px}.wordmark{display:flex;align-items:center;gap:4px;min-width:172px;font-size:15px;font-weight:600;letter-spacing:1.5px}.brand-symbol{color:var(--cyan);font-size:37px;line-height:1;margin-right:4px;font-weight:300}.wordmark small{display:block;font-size:8px;font-weight:400;color:#7392a8;letter-spacing:3px;margin-top:3px}.case-tabs{display:flex;gap:4px;border:1px solid var(--line);padding:4px;border-radius:7px}.case-button{font-size:13px;padding:8px 22px;border-radius:4px;color:#8fa1b5;transition:.2s}.case-button.active{background:#132435;color:#c2eff4;box-shadow:inset 0 0 0 1px #254357}.view-tabs{margin-left:auto;display:flex;gap:20px;height:100%;align-items:center}.view-tabs button{height:100%;position:relative;padding:0 2px;color:#738397;font-size:12px;letter-spacing:.4px}.view-tabs button.active{color:#c5e9ef}.view-tabs button.active:after{content:"";position:absolute;bottom:15px;left:2px;right:2px;height:2px;background:var(--cyan)}.viewport{display:flex;align-items:center;justify-content:center;min-height:0;width:100%}.frame{width:100%;aspect-ratio:2880/1626;position:relative;background:#03091b;overflow:hidden;border:1px solid #213345;box-shadow:0 12px 50px #0008}.stage{position:absolute;width:2880px;height:1626px;transform-origin:top left;overflow:hidden;background:#03091b}.visual,.film,.regions{position:absolute;inset:0;width:2880px;height:1626px}.visual{background-size:2880px 1626px;background-position:center}.film{object-fit:fill;pointer-events:none}.film[hidden]{display:none}.regions{pointer-events:none;overflow:hidden}.region{position:absolute;border:0;outline:2px solid transparent;padding:0;pointer-events:auto;isolation:isolate;transition:border-color .18s,box-shadow .18s;background:transparent;--region-color:#53d5e9}.region:not(.art-region):hover,.region:focus-visible,.region.selected{outline-color:var(--region-color);box-shadow:0 0 32px #3bd6ec20,inset 0 0 34px #3bd6ec08;outline-width:2px}.region .tile-image{position:absolute;inset:0;pointer-events:none;background-size:2880px 1626px;opacity:0;transition:filter .18s}.stage.browsing .region .tile-image{opacity:1}.stage.browsing .region:hover .tile-image{filter:brightness(1.17)}.region.art-region:hover{outline-color:#5be1f866;box-shadow:0 0 40px #3bd6ec22}.chapter-nav{pointer-events:none!important;position:absolute;left:590px;right:590px;top:1540px;height:70px;display:flex;pointer-events:auto}.chapter-hit{pointer-events:auto;height:100%;flex:1;position:relative;min-width:0;padding:0;background:transparent;color:transparent}.chapter-hit:focus-visible{outline-offset:-8px;outline-width:2px}.chapter-hit:hover:after{content:"";position:absolute;left:7%;right:7%;top:7%;bottom:10%;border-radius:4px;background:#63dfee12;box-shadow:inset 0 0 0 1px #70e4f333}.chapter-hit .sr-only{color:#fff}.hover-label{position:absolute;z-index:8;max-width:900px;padding:17px 24px;background:#07111aee;border:1px solid #57d4e966;color:#d5edf0;font-size:23px;line-height:1.65;pointer-events:none;box-shadow:0 12px 40px #0007;backdrop-filter:blur(16px);white-space:normal}.hover-label strong{display:block;color:#6dddde;font-size:26px;margin-bottom:3px}.stage-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:68px;height:68px;border-radius:50%;background:#081422aa;border:1px solid #75d9ed77;backdrop-filter:blur(10px);display:none;align-items:center;justify-content:center;box-shadow:0 0 32px #35c4dd16}.stage-play svg{width:28px;height:28px;fill:#ccf9ff;stroke:none;margin-left:3px}.frame:hover .stage-play.initial{display:flex}.loading{position:absolute;right:14px;bottom:14px;padding:7px 12px;font-size:11px;letter-spacing:1px;background:#091724dc;border:1px solid #324960;color:#c1e9ec;z-index:15}.media-error{position:absolute;inset:0;display:flex;flex-direction:column;gap:18px;align-items:center;justify-content:center;background:#030913c9;font-size:16px}.media-error[hidden],.loading[hidden]{display:none}.media-error button{border:1px solid var(--line);padding:9px 20px;border-radius:5px;background:var(--surface)}.transport{padding-top:20px}.transport-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.scene-name{display:flex;align-items:center;gap:14px;min-width:0}.scene-name>span{font-family:Arial,sans-serif;font-size:26px;font-weight:300;letter-spacing:1px;color:var(--cyan);line-height:1;border-right:1px solid #223447;padding-right:14px}.scene-name strong{display:block;font-size:13px;font-weight:500;letter-spacing:1px}.scene-name small{display:block;font-size:10px;color:var(--muted);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:420px}.transport-actions{display:flex;gap:10px;align-items:center;flex-shrink:0}.icon-button{width:30px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;color:#8ea4b9}.icon-button:hover,.icon-button[aria-pressed="true"]{background:#13273b;color:var(--cyan)}.play-button{height:34px;min-width:79px;display:flex;align-items:center;justify-content:center;gap:7px;background:#152a3b;border:1px solid #2c4c5e;border-radius:5px;color:#c1edf2;font-size:12px}.play-button svg{width:17px;height:17px;fill:currentColor;stroke:none}.control-divider{height:16px;border-left:1px solid #223142;margin:0 4px}.speed-label select{border:0;background:var(--bg);color:#b7c9d8;font-size:11px;padding:7px 2px;width:55px;cursor:pointer}.clean-button{font-size:11px;border:1px solid #24394b;border-radius:4px;padding:7px 10px;color:#9cb1c1;white-space:nowrap}.clean-button:hover{color:#e0f3f5;border-color:#587b91}.seek-row{display:flex;align-items:center;gap:15px;margin-top:17px}.seek-row output{font-family:Arial,sans-serif;font-variant-numeric:tabular-nums;font-size:10px;color:#95a9bb;min-width:32px}.seek-wrap{flex:1;position:relative;height:20px;display:flex;align-items:center}.seek-wrap input{appearance:none;background:linear-gradient(90deg,var(--cyan) var(--progress,0%),#1a2b3e var(--progress,0%));height:3px;width:100%;border:0;border-radius:2px;cursor:pointer;margin:0}.seek-wrap input::-webkit-slider-thumb{appearance:none;height:9px;width:9px;border-radius:50%;background:#b5f5fc;box-shadow:0 0 8px #4ec9e8aa}.seek-wrap input::-moz-range-thumb{height:9px;width:9px;border-radius:50%;border:0;background:#b5f5fc}.chapter-markers{position:absolute;left:0;right:0;top:6px;height:8px;pointer-events:none}.chapter-markers i{position:absolute;border-left:1px solid #55718688;top:0;bottom:0}.bottom-row{margin-top:7px;display:flex;justify-content:space-between;gap:15px;font-size:10px;color:#51677d;line-height:1.8}.hint-dot{margin:0 9px;color:#31465b}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);z-index:100;padding:11px 18px;border:1px solid #41616f;border-radius:6px;background:#07121af0;color:#c9e8ed;font-size:12px;box-shadow:0 10px 30px #0006;white-space:nowrap}.exit-clean{position:fixed;z-index:50;right:24px;top:20px;padding:8px 12px;background:#091724bf;border:1px solid #36526488;border-radius:5px;font-size:11px;color:#b8dbe4;opacity:0;transition:opacity .2s}.exit-clean:hover,.exit-clean:focus-visible,.app.clean.show-exit .exit-clean{opacity:1}.exit-clean kbd{margin-left:8px;color:#7093a8;font:10px inherit}.app.clean{position:fixed;inset:0;width:100%;max-width:none;padding:0;background:#000;z-index:40;display:flex;align-items:center;justify-content:center}.app.clean .chrome{display:none}.app.clean .viewport{height:100%;width:100%}.app.clean .frame{width:min(100vw,calc(100svh * 2880 / 1626));max-height:100svh;border:0;box-shadow:none}.app.clean .region{pointer-events:none}.app.clean .chapter-nav{pointer-events:none}.app.clean .stage-play{display:none!important}.app.clean .loading{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.frame.reference .regions,.frame.reference .chapter-nav{display:none}.app:fullscreen{width:100%;max-width:none}.app:fullscreen:not(.clean){height:100%;display:flex;flex-direction:column;justify-content:center}.app:fullscreen:not(.clean) .viewport{flex:1;min-height:0}.app:fullscreen:not(.clean) .frame{width:min(100%,calc((100svh - 202px) * 2880 / 1626))}.app:fullscreen .transport{padding-bottom:10px}.stage.browsing{cursor:default}.film:not([hidden])+.regions .region{border-color:transparent;box-shadow:none;pointer-events:none}
@media(min-width:1500px){.app{padding:0 46px 20px}.topbar{height:86px}.case-button{font-size:14px;padding:9px 26px}.scene-name strong{font-size:14px}.scene-name small{font-size:11px}.bottom-row{font-size:11px}.transport{padding-top:22px}}
@media(max-width:850px){.app{padding:0 16px 16px}.topbar{height:68px;gap:14px}.wordmark{min-width:unset}.wordmark>span:last-child{font-size:12px}.wordmark small{font-size:7px;letter-spacing:2px}.brand-symbol{font-size:29px}.case-button{padding:7px 13px;font-size:12px}.view-tabs{gap:12px}.view-tabs button{font-size:11px}.transport-actions{gap:5px}.scene-name small{max-width:210px}.clean-button{padding:7px 8px}.bottom-row{font-size:9px}.bottom-row>span:last-child{display:none}.control-divider{margin:0 1px}}
@media(max-width:600px){.app{padding:0 10px 16px}.topbar{height:99px;flex-wrap:wrap;justify-content:space-between;gap:0 10px;align-content:center;padding:10px 3px}.wordmark{margin-right:auto}.case-tabs{margin-left:8px}.view-tabs{height:31px;width:100%;margin:5px 0 0;justify-content:flex-end}.view-tabs button{height:31px}.view-tabs button.active:after{bottom:0}.scene-name>span{font-size:20px;padding-right:9px}.scene-name{gap:9px}.scene-name strong{font-size:12px}.scene-name small{max-width:170px;font-size:9px}.transport{padding-top:13px}.transport-top{flex-wrap:wrap;gap:13px}.transport-actions{width:100%;justify-content:space-between;gap:3px}.transport-actions .control-divider{display:none}.play-button{min-width:70px}.seek-row{margin-top:12px}.bottom-row{font-size:10px}.exit-clean{right:10px;top:10px}.app:fullscreen:not(.clean) .frame{width:min(100%,calc((100svh - 275px) * 2880 / 1626))}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.scene-tabs{position:absolute;inset:0;pointer-events:none}.scene-hit{position:absolute;pointer-events:auto;border:0;outline:2px solid transparent;outline-offset:-2px}.scene-hit:hover,.scene-hit:focus-visible{outline-color:#55d3de77;background:#3dc8db0b}.frame.reference .scene-tabs,.app.clean .scene-tabs{display:none}.domain-link{position:absolute;inset:0;width:2880px;height:1626px;pointer-events:none;filter:drop-shadow(0 0 8px #5ccfec)}.domain-link[hidden]{display:none}.domain-link path{fill:none;stroke:#75eaf8;stroke-width:2.5;stroke-dasharray:12 10;animation:link-flow 2s linear infinite}.domain-link circle{stroke:#b6f3fb;stroke-width:3;fill:#39b6de33}.frame.reference .domain-link{display:none}.app.clean .chapter-hit{pointer-events:none}@keyframes link-flow{to{stroke-dashoffset:-88}}

@media(min-width:851px){.frame{width:min(100%,calc((100svh - 232px) * 2880 / 1626))}}

.case-button{font-size:14px}.view-tabs button{font-size:13px}.scene-name strong{font-size:15px}.scene-name small{font-size:12px}.play-button{font-size:13px}.clean-button{font-size:12px}.bottom-row{font-size:12px}.speed-label select{font-size:12px}.seek-row output{font-size:12px}.transport-top{min-height:42px}
@media(max-width:600px){.case-button{font-size:13px}.view-tabs button{font-size:12px}.scene-name strong{font-size:14px}.scene-name small{font-size:11px}.bottom-row{font-size:11px}}
.app.clean .regions,.app.clean .toast{display:none}
