:root{--bg:#090e12;--panel:#0d1419;--line:#233038;--line-soft:#1b262e;--text:#dce5e8;--muted:#81959e;--dim:#4b6572;--cyan:#9bd9e3;--accent:#d8ad76;--sidebar:238px;--rightbar:282px;font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:13px;overflow:hidden}button,input,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:disabled{cursor:default;opacity:.4}button,a,input{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--cyan)}button:hover{color:#fff}button{transition:background .18s,color .18s,border-color .18s}a{color:inherit;text-decoration:none}small,.micro,.eyebrow{font-size:10px;letter-spacing:1.3px}.micro{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:1px}.muted{color:var(--muted)}.topbar{height:82px;display:flex;align-items:center;padding:0 28px;gap:24px;border-bottom:1px solid var(--line);background:#0b1217}.brand{display:flex;align-items:center;gap:14px;flex-shrink:0}.brand-mark{width:34px;height:34px;position:relative;display:block;object-fit:contain}.wordmark{font-size:25px;letter-spacing:7px;font-weight:600;line-height:1.15}.wordmark small{display:block;font-size:8px;letter-spacing:2px;color:var(--muted);margin-top:5px}.brand-divider{height:30px;width:1px;background:var(--line);margin:0 4px}.brand-sub{font-size:12px;letter-spacing:2px}.brand-sub small{display:block;font-size:8px;letter-spacing:1.5px;color:var(--dim);margin-top:7px}.series-nav{display:flex;height:100%;align-items:stretch;margin:auto;gap:8px}.series-nav button{position:relative;padding:0 20px;color:var(--muted);font-size:13px;white-space:nowrap}.series-nav span{font:10px ui-monospace,monospace;color:var(--dim);margin-right:6px}.series-nav button.active{color:var(--cyan);background:linear-gradient(0deg,#81c6d410,transparent)}.series-nav button.active:after{content:'';position:absolute;bottom:-1px;left:20px;right:20px;height:2px;background:var(--cyan)}.header-actions{display:flex;gap:20px;align-items:center;white-space:nowrap}.header-actions .plain{font-size:12px;color:var(--muted)}.plain span{color:var(--cyan);margin-left:6px}.outline{border:1px solid #39535e;padding:10px 13px;font-size:12px;border-radius:3px}.contextbar{height:42px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line-soft);font-size:11px;background:#0c1217}.contextbar>div{display:flex;align-items:center;gap:12px}.contextbar button{color:var(--muted);margin-left:12px;font-size:11px}.live-dot{width:5px;height:5px;border-radius:50%;background:#97cbbf;display:inline-block;box-shadow:0 0 8px #97cbbf35}.slash{color:#455760;margin:0 3px}.workspace{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr) var(--rightbar);height:calc(100dvh - 250px);min-height:420px}.panel{background:linear-gradient(135deg,#0e161c,#0b1217);min-height:0;position:relative;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#2a424d transparent}.left-panel{border-right:1px solid var(--line);padding:22px 17px;display:flex;flex-direction:column}.panel-title{display:flex;align-items:center;justify-content:space-between;font-size:12px;letter-spacing:1px;margin-bottom:23px}.panel-title .micro{font-size:8px;letter-spacing:.5px}.asset-card{width:100%;text-align:left;display:flex;align-items:center;gap:12px;padding:15px 9px;border:1px solid #30414a;background:#18252c80;border-radius:3px}.asset-icon{font-size:26px;color:var(--cyan)}.asset-card strong{font-size:13px;letter-spacing:1px;font-weight:500}.asset-card small{font:8px ui-monospace,monospace;display:block;color:var(--muted);margin-top:8px;letter-spacing:.7px}.asset-chevron{margin-left:auto;color:var(--muted)}.search{height:35px;display:flex;align-items:center;gap:8px;margin:18px 0 25px;border-bottom:1px solid var(--line)}.search>span{font-size:22px;color:var(--muted)}.search input{width:100%;border:0;background:none;color:var(--text);font-size:11px;outline:none;padding:5px 0}.search input::placeholder{color:#667e89}.search kbd{color:var(--dim);border:1px solid #2c3a42;border-radius:3px;padding:0 5px;font-size:10px}.tree-heading{display:flex;justify-content:space-between;color:var(--dim);font-size:10px;padding:0 9px;margin-bottom:12px;letter-spacing:1px}.tree-heading span:last-child{font-family:monospace}.tree-whole{padding:12px 10px;width:100%;text-align:left;font-size:12px;display:flex;gap:9px;border:1px solid transparent;border-radius:2px}.tree-whole span:first-child{color:var(--cyan)}.tree-whole span:last-child{margin-left:auto;color:var(--dim)}.tree-whole.active,.part-row.active{background:#9bd9e310;color:var(--cyan);border-color:#9bd9e329}.part-tree{padding-top:5px}.part-row{display:flex;align-items:center;text-align:left;width:100%;padding:13px 10px;border:1px solid transparent;border-radius:2px;font-size:12px;gap:11px;color:#9eafb7;margin-bottom:2px}.part-row:hover{background:#94b9c00b}.part-row .branch{width:12px;height:15px;border-left:1px solid #314650;border-bottom:1px solid #314650;margin-left:5px;margin-top:-7px}.part-row .part-num{margin-left:auto;font:9px ui-monospace,monospace;color:var(--dim)}.part-row.active .part-num{color:var(--cyan)}.empty-search{font-size:11px;color:var(--muted);padding:16px}.left-bottom{margin-top:auto;padding:24px 3px 0}.left-bottom>.micro{font-size:8px;color:var(--dim)}.guide-card{width:100%;margin:12px 0 0;display:flex;align-items:center;gap:11px;text-align:left;border:1px solid #3f3c32;background:linear-gradient(115deg,#b9925c12,transparent);padding:14px 9px}.guide-symbol{color:var(--accent);font-size:21px}.guide-card strong{font-weight:500;font-size:11px}.guide-card small{display:block;font-size:9px;margin-top:6px;color:#8b9699;letter-spacing:0}.guide-card>span:last-child{margin-left:auto;color:var(--accent)}.left-bottom p{font-size:10px;line-height:1.9;color:#5e7782;margin:17px 5px 0}.stage{position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 54%,#192931 0%,#0c151c 44%,#080e13 85%)}#canvasHost{position:absolute;inset:0}canvas{display:block;touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 80px #050a0f50}.stage-heading{position:absolute;top:28px;left:30px;pointer-events:none}.eyebrow{font-family:ui-monospace,monospace;color:var(--dim);font-size:9px;display:flex;align-items:center;gap:10px;letter-spacing:1.8px}.dash{width:20px;height:1px;background:var(--accent)}h1{font-size:30px;font-weight:400;letter-spacing:5px;margin:13px 0 11px}.stage-heading p{color:var(--muted);font-size:11px;letter-spacing:2px;margin:0}.stage-top-right{position:absolute;top:29px;right:25px;color:var(--muted);font:9px ui-monospace,monospace;display:flex;align-items:center;gap:7px}.status-square{width:4px;height:4px;background:var(--cyan);display:inline-block}.view-tools{position:absolute;right:22px;top:76px;display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);padding:4px;background:#0b141ac9;border-radius:3px}.view-tools button{font-size:9px;color:var(--muted);width:32px;height:30px}.view-tools button:nth-last-child(-n+2){font-size:19px}.view-tools button.active{background:#8ac9d315;color:var(--cyan)}.view-tools>span{height:1px;background:var(--line);margin:4px 2px}.display-options{position:absolute;bottom:55px;left:50%;transform:translateX(-50%);display:flex;gap:2px;padding:5px;background:#101b22eb;border:1px solid #31434d;border-radius:4px;white-space:nowrap;box-shadow:0 12px 30px #0003}.display-options button{font-size:12px;color:var(--muted);padding:8px 12px;border-radius:2px}.display-options button span{font-size:10px;margin-left:4px}.display-options button.active{background:#83b5bf15;color:var(--cyan)}.stage-bottom-note{position:absolute;left:28px;right:90px;bottom:20px;display:flex;justify-content:space-between;font:9px ui-monospace,monospace;color:#65808e;letter-spacing:1px}.stage-bottom-note>span:last-child{font-size:10px;letter-spacing:.3px}.axis{width:55px;height:55px;position:absolute;bottom:15px;right:18px;color:var(--muted);font:8px monospace}.axis svg{position:absolute;inset:0;stroke:#607885;fill:none;stroke-width:1}.axis span{position:absolute;z-index:1;background:#0c1419;padding:2px}.axis-y{top:-1px;left:24px}.axis-x{right:-1px;bottom:8px}.axis-z{bottom:6px;left:0}.right-panel{border-left:1px solid var(--line);padding:22px 20px;display:flex;flex-direction:column}.right-panel .panel-title{margin-bottom:17px}.detail-preview{height:152px;background:radial-gradient(ellipse,#1e3039,#0d171e 70%);position:relative;border:1px solid #23343e;flex-shrink:0;overflow:hidden}.detail-preview>.micro{position:absolute;top:12px;left:12px;color:#566e7b;font-size:7px;z-index:1}.detail-preview img{width:100%;height:100%;object-fit:contain}.detail-preview>span:last-child{position:absolute;bottom:9px;left:12px;color:var(--dim);font-size:9px;letter-spacing:1px}.preview-cross{position:absolute;width:7px;height:7px;border-color:#567383;border-style:solid;z-index:1}.cross-a{border-width:1px 0 0 1px;left:5px;top:5px}.cross-b{border-width:0 1px 1px 0;bottom:5px;right:5px}.detail-content{padding-top:21px}.tag{color:var(--accent);font-size:9px;letter-spacing:1px}.detail-content h2{font-size:22px;font-weight:400;letter-spacing:2px;margin:11px 0 7px}.detail-en{font-size:8px;font-family:ui-monospace,monospace;letter-spacing:1px;color:var(--dim);line-height:1.7}.detail-content>p{font-size:11px;color:#93a6af;line-height:1.9;margin:15px 0 18px}.detail-facts{border-top:1px solid var(--line-soft)}.fact{display:flex;justify-content:space-between;gap:8px;font-size:10px;border-bottom:1px solid var(--line-soft);padding:10px 0}.fact span:first-child{color:#647e8b}.fact span:last-child{color:#b2c2ca;text-align:right}.detail-actions{display:flex;gap:7px;margin-top:18px}.detail-actions button{flex:1;border:1px solid #3a535e;font-size:10px;padding:9px 0;color:var(--cyan);border-radius:2px}.detail-actions button.active{background:#94d2dc20;border-color:var(--cyan)}.section-rule{height:1px;background:var(--line-soft);margin:22px 0 16px}.small-heading{font-size:10px;display:flex;justify-content:space-between;letter-spacing:1px}.small-heading span{font:8px ui-monospace,monospace;color:var(--dim)}.detail-content .insight{font-size:10px;color:#819ba8;margin:10px 0 12px}.related-action{padding:0;font-size:10px;color:var(--accent);display:flex;width:100%;justify-content:space-between}.reference-note{margin-top:auto;padding-top:22px;display:flex;align-items:flex-start;gap:8px;font-size:9px;color:#79929e;line-height:1.8}.reference-note .status-square{margin-top:6px;background:#6d8793}.reference-note small{font-size:8px;letter-spacing:.5px;color:#526c79}.reference-note button{margin-left:auto;font-size:14px}.transport{height:93px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 25px;gap:25px;background:#0c151b}.mode-tabs{display:flex;gap:3px;flex-shrink:0}.mode-tabs button{padding:12px 14px;border:1px solid transparent;color:var(--muted);font-size:11px;border-radius:3px}.mode-tabs button span{display:block;font:8px ui-monospace,monospace;color:var(--dim);text-align:left;margin-bottom:6px}.mode-tabs button.active{background:#12262e;border-color:#3a5d69;color:var(--cyan)}.mode-tabs button.active span{color:#76a8b9}.timeline{flex:1;display:flex;align-items:center;gap:20px;border-left:1px solid var(--line);padding-left:25px;min-width:0}.play-button{border:1px solid #415864;border-radius:50%;width:38px;height:38px;flex-shrink:0;color:var(--cyan);font-size:10px}.timeline-track{flex:1;min-width:0}.timeline-caption{display:flex;justify-content:space-between;font-size:10px;margin-bottom:6px}.timeline-caption>span:last-child{color:var(--dim);font-size:9px}.timeline-track input{width:100%;margin:0;display:block;accent-color:var(--cyan);height:12px;cursor:pointer}.timeline-ticks{display:flex;justify-content:space-between;font:8px ui-monospace,monospace;color:var(--dim);margin-top:5px}.progress-number{font:29px ui-monospace,monospace;letter-spacing:-1px;color:var(--cyan);width:63px;text-align:right}.progress-number small{font-size:10px;color:var(--dim);margin-left:3px}.restore{display:flex;gap:10px;align-items:center;font-size:19px;color:var(--muted);border-left:1px solid var(--line);padding-left:25px}.restore span{font-size:11px}footer{height:33px;display:flex;align-items:center;justify-content:space-between;padding:0 25px;font:8px ui-monospace,monospace;letter-spacing:1px;color:#617b88;background:#0a1116}footer>div{display:flex;align-items:center;gap:9px}footer button{font-size:9px;color:#809ca9}footer .live-dot{width:4px;height:4px}.footer-sep{margin:0 8px;color:#354c57}.hotspots{position:absolute;inset:0;pointer-events:none}.hotspot{position:absolute;pointer-events:auto;display:flex;align-items:center;gap:8px;transform:translate(-9px,-50%);white-space:nowrap;padding:4px 0;color:#acc4ce;font-size:9px;text-shadow:0 1px 5px #000}.hotspot i{width:15px;height:15px;border:1px solid #a4d8e3a0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#0b1e2980;box-shadow:0 0 0 3px #90bac510}.hotspot i:after{content:'';width:3px;height:3px;background:var(--cyan);border-radius:50%}.hotspot span{background:#09131ccb;padding:5px 8px;border-left:1px solid #547985;font-size:9px}.hotspot.active{color:var(--accent)}.hotspot.active i{border-color:var(--accent)}.hotspot.active i:after{background:var(--accent)}.hotspot.active span{border-color:var(--accent)}.loading{position:absolute;inset:0;background:#0a1219;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;z-index:20;font-size:12px;transition:opacity .4s}.loading span:last-child{color:var(--dim);font-size:10px}.loading strong{font-weight:400;letter-spacing:3px}.loader{width:36px;height:36px;border:1px solid #203741;border-top-color:var(--cyan);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}[hidden]{display:none!important}.guide-panel{position:absolute;left:28px;bottom:110px;background:#10202bf2;border:1px solid #47616a;backdrop-filter:blur(15px);width:290px;padding:18px;box-shadow:0 15px 45px #0007}.guide-panel>div:first-child{display:flex;justify-content:space-between;align-items:center}.guide-panel .micro{color:var(--accent)}.guide-panel h3{font-size:15px;letter-spacing:1px;font-weight:400;margin:12px 0}.guide-panel p{font-size:11px;color:#9eb4bf;line-height:1.8}.guide-controls{display:flex;justify-content:space-between;border-top:1px solid #2c4551;padding-top:14px;margin-top:14px;font-size:11px}.guide-controls button:last-child{color:var(--cyan)}dialog{color:var(--text);background:linear-gradient(120deg,#13212a,#0b141b);border:1px solid #3c5664;border-radius:5px;width:min(960px,92vw);max-height:88dvh;padding:32px;box-shadow:0 30px 100px #0009}dialog::backdrop{background:#03070cb5;backdrop-filter:blur(10px)}.dialog-head{display:flex;justify-content:space-between;align-items:start}.dialog-head h2{font-size:28px;font-weight:400;letter-spacing:4px;margin:12px 0 0}.close-dialog{font-size:29px;font-weight:200;line-height:1;color:var(--muted)}.dialog-intro{color:var(--muted);font-size:12px;line-height:1.8;margin:22px 0}.collection-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.collection-card{padding:0;border:1px solid #2d444f;background:#0a151d;text-align:left;overflow:hidden;border-radius:3px;position:relative}.collection-card:hover{border-color:#7cb6c7;background:#142630}.collection-image{height:180px;display:block;width:100%;object-fit:contain;background:radial-gradient(ellipse,#253943,transparent)}.collection-meta{padding:20px;border-top:1px solid #243944}.collection-meta .micro{color:var(--accent);font-size:9px}.collection-meta h3{font-size:19px;font-weight:400;letter-spacing:2px;margin:13px 0}.collection-meta p{font-size:10px;color:var(--muted);line-height:1.8;min-height:36px}.collection-bottom{display:flex;justify-content:space-between;color:var(--cyan);font-size:10px;margin-top:22px}.dialog-foot{display:flex;justify-content:space-between;border-top:1px solid #263d48;padding-top:22px;margin-top:27px;font-size:10px;color:var(--muted)}#infoDialog,#importDialog{max-width:640px}.info-body{margin-top:25px}.info-body h3{font-size:13px;color:#c8dbe4;font-weight:500;margin:24px 0 10px}.info-body p{font-size:12px;color:#90a7b3;line-height:1.9}.info-body a{color:var(--cyan);text-decoration:underline}.upload-area{border:1px dashed #547580;background:#92c0ce08;display:flex;flex-direction:column;align-items:center;padding:45px 20px;gap:13px;cursor:pointer}.upload-area>span{font-size:30px;color:var(--cyan)}.upload-area strong{font-size:14px;font-weight:400}.upload-area small{color:var(--muted);font-size:10px;letter-spacing:0}.upload-area input{margin-top:10px;max-width:100%;font-size:11px}.import-tip{font-size:11px;color:var(--muted);line-height:1.9;margin:20px 0}#importStatus{font-size:12px;color:var(--accent)}#toast{position:fixed;bottom:145px;left:50%;transform:translate(-50%,15px);background:#192d37ee;color:#d9eaf0;border:1px solid #547585;padding:13px 22px;border-radius:4px;font-size:12px;opacity:0;pointer-events:none;transition:all .25s;z-index:100;box-shadow:0 10px 35px #0006}#toast.show{opacity:1;transform:translate(-50%,0)}body.presentation .left-panel,body.presentation .right-panel{display:none}body.presentation .workspace{grid-template-columns:minmax(0,1fr)}body.presentation .stage-heading{left:45px;top:35px}body.presentation .stage-heading h1{font-size:38px}body.presentation .stage{background:radial-gradient(ellipse at 50% 55%,#172a34,#080f16 65%)}body.presentation .header-actions .plain,body.presentation footer button{display:none}
@media(min-width:1600px){:root{--sidebar:270px;--rightbar:320px}.topbar{height:88px}.workspace{height:calc(100dvh - 256px)}.left-panel{padding:25px 23px}.right-panel{padding:25px}.detail-preview{height:190px}.detail-content>p{font-size:12px}.part-row{padding:15px 10px}.stage-heading{top:35px;left:38px}h1{font-size:36px}.detail-content h2{font-size:25px}.fact{padding:13px 0}}
@media(max-width:1200px){:root{--sidebar:200px;--rightbar:244px}.topbar{padding:0 18px;gap:15px}.brand-sub{display:none}.brand-divider{display:none}.series-nav button{padding:0 14px}.header-actions{gap:12px}.left-panel{padding:20px 12px}.right-panel{padding:20px 15px}.detail-preview{height:130px}.detail-content{padding-top:17px}.detail-content>p{font-size:10px;margin:12px 0}.detail-content h2{font-size:20px}.section-rule{margin:16px 0}.transport{gap:15px;padding:0 18px}.timeline{padding-left:15px;gap:12px}.mode-tabs button{padding:10px}.restore{padding-left:15px}.timeline-caption>span:last-child{display:none}.stage-heading{left:23px}.stage-top-right{font-size:8px}.display-options button{padding:7px 8px}.stage-bottom-note>span:last-child{font-size:8px}.stage-heading .eyebrow{font-size:8px;letter-spacing:1px}.left-bottom p{display:none}}
@media(max-width:950px){:root{--sidebar:185px;--rightbar:0px}.right-panel{display:none}.header-actions .plain{display:none}.workspace{grid-template-columns:var(--sidebar) minmax(0,1fr)}.stage-top-right{top:24px}.brand{gap:10px}.wordmark{font-size:22px}.topbar{height:72px}.workspace{height:calc(100dvh - 240px)}.contextbar{padding:0 18px}.guide-panel{width:260px}}
@media(max-width:640px){body{overflow-y:auto}.topbar{height:108px;flex-wrap:wrap;gap:0;padding:14px 16px 0;align-content:space-between}.brand-mark{width:25px;height:25px}.wordmark{font-size:21px}.wordmark small{font-size:6px}.header-actions{margin-left:auto}.outline{padding:8px 10px}.series-nav{order:3;height:44px;width:100%;justify-content:space-between;gap:0;margin:0}.series-nav button{padding:0 14px;font-size:11px}.series-nav button.active:after{left:10px;right:10px}.contextbar{height:37px;font-size:9px;padding:0 15px}.contextbar .muted{display:none}.contextbar button{font-size:9px;margin:0}.workspace{height:calc(100dvh - 279px);min-height:420px;grid-template-columns:minmax(0,1fr)}.left-panel{display:none}.stage-heading{top:22px;left:20px}h1{font-size:26px;letter-spacing:3px}.stage-heading p{font-size:10px}.stage-top-right{display:none}.view-tools{top:25px;right:12px}.display-options{bottom:52px}.display-options button span{font-size:9px}.display-options button{padding:7px 9px}.stage-bottom-note{left:17px;bottom:20px;right:70px;font-size:8px}.stage-bottom-note>span:last-child{display:none}.transport{height:101px;flex-wrap:wrap;gap:0;padding:0 12px;align-content:center}.mode-tabs{width:100%;justify-content:center;height:35px;margin-bottom:4px}.mode-tabs button{padding:6px 18px;font-size:10px}.mode-tabs button span{display:none}.timeline{border:0;padding:0;gap:10px}.timeline-caption{display:none}.play-button{width:29px;height:29px}.timeline-ticks{font-size:7px}.progress-number{font-size:22px;width:48px}.restore{font-size:18px;padding-left:12px;margin-left:12px}.restore span{display:none}footer{height:33px;padding:0 12px;font-size:7px}footer>div{gap:5px}footer>div:last-child>span{display:none}#footerStatus{display:none}.collection-cards{grid-template-columns:1fr}.collection-card{display:grid;grid-template-columns:100px 1fr}.collection-image{height:100%;min-height:165px}.collection-meta{padding:16px;border-left:1px solid #243944;border-top:0}.collection-meta h3{font-size:17px;margin:9px 0}.collection-bottom{margin-top:12px}.collection-meta p{min-height:0;margin:0}.dialog-foot{font-size:9px}.dialog-foot span{display:none}dialog{padding:23px}.dialog-head h2{font-size:24px}.guide-panel{left:16px;bottom:110px;width:245px}.hotspot span{font-size:8px;padding:4px}body.presentation .stage-heading{left:20px;top:25px}body.presentation .stage-heading h1{font-size:27px}#toast{max-width:90vw;width:max-content;font-size:11px;bottom:125px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

#mobilePartSelect,#mobileDetailsBtn,#mobileCloseBtn{display:none}
@media(max-width:950px){#mobileDetailsBtn{display:block;position:absolute;left:24px;bottom:94px;color:var(--cyan);font-size:10px;padding:7px 10px;border:1px solid #36505d;background:#0e1c25}body.details-open .right-panel{display:flex;position:fixed;right:0;top:72px;bottom:33px;width:300px;z-index:40;box-shadow:-20px 0 80px #000a;background:#101c24;padding-top:45px}#mobileCloseBtn{display:block;position:absolute;top:10px;right:15px;font-size:24px;color:var(--muted)}}
@media(max-width:640px){#mobilePartSelect{display:block;position:absolute;top:118px;left:20px;font-size:10px;padding:6px 8px;border:1px solid #314c59;background:#0e1c25;color:var(--cyan);max-width:150px;border-radius:3px}#mobileDetailsBtn{left:20px;bottom:95px}body.details-open .right-panel{top:108px;bottom:0;width:min(310px,90vw)}body.presentation #mobilePartSelect{display:none}}
@media(max-width:640px){.transport{display:grid;grid-template-columns:minmax(0,1fr) 32px;grid-template-rows:35px 45px;column-gap:10px;row-gap:3px;align-content:center}.mode-tabs{grid-column:1 / -1;margin:0}.timeline{width:100%}.restore{padding-left:10px;margin:0}.progress-number{width:45px;flex-shrink:0}}

/* Launch vehicle chapter */
.rocket-tools,.rocket-only{display:none}.rocket-active .rocket-tools,.rocket-active .rocket-only{display:block}.rocket-tools{border-bottom:1px solid var(--line);padding:0 0 14px;margin-bottom:15px}.rocket-tools label{display:block;color:var(--muted);font-size:11px;margin:10px 0}.rocket-tools select{width:100%;padding:9px 7px;margin-top:6px;background:#111e27;color:var(--text);border:1px solid #344b58;border-radius:4px}.rocket-tools button{border:1px solid var(--line);padding:8px 7px;margin:4px 0;font-size:11px}.rocket-evidence{padding:18px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;line-height:1.7}.rocket-evidence summary{cursor:pointer;color:var(--cyan)}#rocketSources a{display:block;color:var(--cyan);margin-top:12px;text-decoration:underline}#rocketSources img{width:100%;border-radius:4px;margin-top:8px}.flight-caption{position:absolute;bottom:105px;left:24px;right:20px;color:var(--accent);font-size:11px;pointer-events:none}.rocket-active .display-options{flex-wrap:wrap;max-width:80%}#rocketAtlas{max-width:1150px;width:94vw}#rocketCompare{display:flex;overflow:auto;gap:8px;align-items:flex-end;padding:30px 14px;border-bottom:1px solid var(--line)}.compare-rocket{min-width:90px;display:flex;align-items:center;flex-direction:column;gap:12px;padding:10px 4px}.compare-rocket:hover{background:#19303b}.compare-bar{width:22px;background:linear-gradient(90deg,#628b9d,#c3d8da);border-top:3px solid var(--accent);min-height:2px}.compare-rocket strong{font-size:12px;white-space:nowrap}.compare-rocket small,.compare-metric{font-size:10px;color:var(--muted)}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:20px}.photo-grid img{width:100%;aspect-ratio:4/3;object-fit:cover}.photo-grid span{display:block;padding:8px;font-size:11px;color:var(--muted)}.topbar{gap:14px;padding:0 20px}.series-nav button{padding-left:12px;padding-right:12px}.rocket-active .stage-heading h1{font-size:34px}.rocket-active .reference-note{margin-top:0}@media(max-width:1250px){.brand-sub,.brand-divider{display:none}.series-nav button{padding:0 9px;font-size:12px}}@media(max-width:700px){.photo-grid{grid-template-columns:repeat(2,1fr)}.rocket-active .rocket-tools{display:block}.rocket-active .left-panel{display:block;position:absolute;top:115px;left:8px;width:175px;max-height:190px;z-index:10;background:#101b23ed;padding:10px;overflow:auto}.rocket-active .left-panel>*:not(.rocket-tools){display:none}.rocket-active .stage-heading{top:210px}.rocket-active .stage-heading h1{font-size:24px}.rocket-active .flight-caption{bottom:120px;max-width:70%;line-height:1.6}.series-nav{overflow:auto}.series-nav button{white-space:nowrap;flex-shrink:0}.rocket-active .display-options{max-width:90%}.rocket-active .hotspots{display:none}}

.lesson{padding:10px 28px 28px;line-height:1.9}.lesson a{color:var(--cyan);text-decoration:underline}.lesson button{padding:10px 14px;border:1px solid var(--line);margin:5px}.lesson .active{background:#224551;color:#fff}.lesson-controls{display:flex;align-items:center;justify-content:space-between}#engineFlow{display:flex;flex-wrap:wrap;margin:20px 0}#engineExplanation{padding:20px;background:#12242d;min-height:100px}.lesson hr{border:0;border-top:1px solid var(--line);margin:25px 0}#quizAnswers{display:grid;gap:5px}#quizFeedback{color:var(--accent);min-height:60px}.rocket-active .stage-top-right{right:24px}
@media(max-width:700px){.rocket-active .workspace{display:flex;flex-direction:column;height:auto;min-height:680px}.rocket-active .left-panel{position:static;display:block;width:100%;max-height:none;padding:8px 14px;overflow:visible}.rocket-active .rocket-tools{display:grid;grid-template-columns:1fr 1fr;gap:5px;border:0;margin:0;padding:0}.rocket-active .rocket-tools label{margin:0}.rocket-active .rocket-tools select{padding:7px;margin-top:3px}.rocket-active .rocket-tools button{padding:6px;margin:0;font-size:10px}.rocket-active .stage{height:560px;min-height:560px;width:100%;flex:none}.rocket-active .stage-heading{top:20px;left:20px}.rocket-active .stage-heading h1{font-size:23px}.rocket-active .display-options{left:16px;right:16px;bottom:48px;max-width:none;width:auto;transform:none;flex-wrap:nowrap;gap:0;justify-content:space-around}.rocket-active .display-options button{font-size:10px;padding:8px 5px}.rocket-active .display-options button span{display:none}.rocket-active .flight-caption{bottom:90px;left:20px;font-size:10px;max-width:none}.rocket-active #mobileDetailsBtn{bottom:120px}.rocket-active #mobilePartSelect{top:108px}.rocket-active .stage-top-right{display:none}}

#internalLesson[hidden]{display:none!important}#internalLesson{padding:22px 20px;line-height:1.8}#internalLesson h2{font-size:22px;margin:6px 0 18px}#internalLesson label{font-size:12px;color:var(--muted)}#internalPart{display:block;width:100%;background:#12232e;color:var(--text);padding:10px;border:1px solid #385360;margin:6px 0 14px}#internalChoices{display:flex;flex-wrap:wrap;gap:7px}#internalChoices button{padding:6px 9px;border:1px solid #344b58;border-left:3px solid var(--part-color);font-size:12px}#internalChoices button.active{background:#23414f;color:#fff}#internalLesson h3{font-size:20px;color:var(--cyan);margin:22px 0 16px}#internalLesson h4{font-size:12px;color:var(--accent);margin:18px 0 5px}#internalLesson p{font-size:13px;line-height:1.9;margin:6px 0 12px}#internalLesson a{font-size:12px;color:var(--cyan);text-decoration:underline}.internal-note,#internalPropellant{color:var(--muted);font-size:11px!important}#internalClose{border:1px solid #385360;padding:8px 12px;margin-top:10px}.internal-open .right-panel> :not(#internalLesson){display:none}.internal-open .right-panel{scroll-behavior:smooth}@media(max-width:950px){.internal-open .workspace{display:flex;flex-wrap:wrap}.internal-open .left-panel{flex:none}.internal-open .stage{flex:1;min-width:0}.internal-open .right-panel{display:block!important;position:static!important;width:100%!important;flex:none;max-height:none;overflow:visible;padding:0!important;box-shadow:none!important}.internal-open .workspace{height:auto}.internal-open #internalLesson{max-width:760px;margin:auto}.internal-open #mobileDetailsBtn{display:none}}@media(max-width:700px){.internal-open .workspace{flex-direction:column}.internal-open .stage{flex:none;width:100%;min-height:560px}.internal-open #internalLesson{padding:20px}.internal-open #internalChoices button{min-height:38px}}
/* Qiongjian instrument labels — engraved indices, warm shutter key. */
.series-nav button{border-left:1px solid transparent}.series-nav button.active{background:#142229;border-left-color:#506670}.series-nav button.active:after{height:3px;background:var(--accent);left:12px;right:auto;width:18px}.series-nav span{color:#ab8e69}.mode-tabs{gap:7px}.mode-tabs button{border:1px solid #34464e;border-radius:0;position:relative;padding:12px 16px;background:#111c22}.mode-tabs button.active{color:#ecd0a8;background:#292821;border-color:#9e8768;box-shadow:inset 3px 0 #d8ad76}.mode-tabs button span{font-family:ui-monospace,monospace;font-size:9px;letter-spacing:2px}.view-tools{border-radius:0;border-left:2px solid #8c7a60;background:#101a20}.view-tools button.active{background:#263239;color:#f0d4ae}.play-button{border:1px solid #ad946f;outline:1px dashed #50616a;outline-offset:5px;background:#232722;color:#e9c896;box-shadow:inset 0 0 0 5px #10191e}.display-options{border-radius:0;border-top:1px solid #756a59;border-bottom:1px solid #3a4b54;background:#101a20ef;gap:5px;padding:7px}.display-options button{position:relative;border-radius:0}.display-options button.active{background:#24353c;box-shadow:inset 0 -2px #9ab9bc}.display-options button:not(#captureBtn):before{content:'';width:3px;height:3px;background:#49606b;position:absolute;left:4px;top:5px}.display-options button.active:before{background:#d8ad76}#captureBtn{background:#d8b783;color:#152029;border:1px solid #e4c99d;padding:11px 14px;display:flex;gap:8px;align-items:center;box-shadow:3px 3px 0 #030a0e;border-radius:0 9px 0 0;min-height:36px}#captureBtn:hover{background:#f0d4ab;transform:translateY(-1px)}#captureBtn:active{transform:translate(2px,2px);box-shadow:1px 1px #030a0e}#captureBtn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.4;flex-shrink:0}.rocket-tools button,.guide-card,.related-action{border-radius:0;border-left:2px solid #9c8769;background:linear-gradient(110deg,#252b28,#121e25)}.rocket-tools button:hover{background:#2b373b;color:#e6c99d}.guide-card{position:relative}.guide-symbol{border:1px solid #8d806c;border-radius:50%;color:#e5c59a}.outline{border-radius:0 8px 0 0;border-color:#6c6a5d}.asset-card{border-radius:0;border-top:2px solid #9a8466}.asset-chevron{color:#d8ad76}
#imageExportDialog{width:min(1080px,96vw);max-width:1080px;padding:30px;border-top:3px solid #c7a575}#imageExportDialog .dialog-head h2{font-size:27px;letter-spacing:2px}.image-export-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:30px}.export-contact{min-width:0;align-self:start;padding:12px;border:1px solid #46515a;background:#111a20}.export-ruler{display:flex;align-items:center;justify-content:space-between;font:10px ui-monospace,monospace;letter-spacing:1px;color:#c7ae89;margin-bottom:12px}.export-ruler button{font-size:11px;letter-spacing:0;padding:4px}#cropArea{position:relative;overflow:hidden;cursor:crosshair;touch-action:none;user-select:none;line-height:0}#imagePreview{width:100%;height:auto;display:block;}#cropBox{position:absolute;pointer-events:none;border:1px solid #efd6af;box-shadow:0 0 0 9999px #030a0e99}#cropBox:before,#cropBox:after{content:'';position:absolute;pointer-events:none;border:1px dashed #efd6af44}#cropBox:before{left:33.333%;width:33.333%;height:100%;top:0;border-top:0;border-bottom:0}#cropBox:after{top:33.333%;height:33.333%;width:100%;left:0;border-left:0;border-right:0}.crop-inputs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.crop-inputs label{font-size:10px;color:var(--muted)}.crop-inputs input{display:block;width:100%;margin-top:5px;padding:7px;background:#0d161c;border:1px solid #3a4d58;color:var(--text)}.export-settings{display:flex;flex-direction:column;gap:15px}.export-settings>label{font-size:12px;color:var(--muted)}.export-settings select{display:block;width:100%;background:#12232e;border:1px solid #435965;color:#e0e5e3;margin-top:7px;padding:10px}.signature-option{display:flex;align-items:center;gap:7px}.signature-option input{accent-color:#c7a575}.print-size{border-top:1px solid #344852;padding-top:15px;display:flex;flex-direction:column;gap:8px}.print-size>span{color:var(--muted);font-size:11px}.print-size strong{font:20px ui-monospace,monospace;color:#e4c595}.print-size small{font-size:10px;letter-spacing:0;color:var(--muted)}#saveImage{padding:14px 18px;background:#d8b783;color:#152029;text-align:left;display:flex;justify-content:space-between;border-radius:0 10px 0 0;font-weight:600}#imageExportStatus{font-size:11px;color:var(--muted);line-height:1.7;margin:0}button:focus-visible,select:focus-visible{outline:2px solid #e5c59a;outline-offset:3px}@media(max-width:700px){#imageExportDialog{padding:18px}.image-export-layout{grid-template-columns:1fr;gap:20px}#imageExportDialog .dialog-head h2{font-size:22px}.export-settings{gap:12px}#imagePreview{max-height:none}.mode-tabs button{padding:8px 10px}.rocket-active .display-options #captureBtn{padding:8px 10px;min-height:38px}.rocket-active .display-options #captureBtn span{display:inline;font-size:10px}#captureBtn svg{width:16px;height:16px}.display-options{gap:2px}.display-options button{padding:8px 7px}.play-button{outline-offset:3px}}

#dimensionOverlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}#dimensionOverlay[hidden],#measureNote[hidden]{display:none!important}#measureNote{position:absolute;left:24px;bottom:125px;font-size:10px;color:#b5a38a;pointer-events:none;z-index:2}#soundBtn{padding:8px 10px;border:1px solid #635d4d;color:#dfc297;font-size:11px;white-space:nowrap}#soundBtn[aria-pressed=false]{color:var(--muted);border-color:var(--line)}.header-actions{gap:10px}.compare-front{display:block;object-fit:contain;width:auto;max-width:none;flex:none}.compare-rocket{min-width:110px;padding:12px 10px;flex-shrink:0}.compare-rocket strong{white-space:normal;min-height:32px;line-height:1.5}.compare-rocket small{height:15px}.compare-bar{display:none}#rocketCompare{background:repeating-linear-gradient(0deg,transparent,transparent 59px,#93b6c312 59px,#93b6c312 60px);align-items:flex-end}.compare-metric{color:#dbc099}.compare-rocket:hover .compare-front{filter:drop-shadow(0 0 8px #a9d4df55)}@media(max-width:700px){#soundBtn{padding:7px;font-size:10px}.header-actions{gap:7px}.rocket-active #measureNote{bottom:108px;left:18px;font-size:9px}.compare-rocket{min-width:100px}.rocket-active .stage-heading{z-index:3}.rocket-active #mobilePartSelect{top:108px}}

#measureNote,.compare-metric{color:#9bd9e3}#rocketCompare{border-bottom-color:#365966}

#soundBtn{color:#9bd9e3;border-color:#365966}

.structure-evidence{border-left:2px solid var(--cyan);background:#13232d;padding:12px;margin:0 0 18px}.structure-evidence[hidden]{display:none}.structure-evidence strong{font-size:12px;color:var(--cyan)}.structure-evidence p{font-size:12px!important}.structure-evidence a{display:block;margin-top:6px;line-height:1.7}#internalLesson h4{color:var(--cyan)}

.structure-evidence summary{cursor:pointer;font-size:12px;color:var(--cyan);margin-top:7px}.structure-evidence details[open] summary{margin-bottom:10px}

/* The entire orbit surface is draggable; interactive overlay controls retain their own cursors. */
#canvasHost canvas{cursor:grab;cursor:-webkit-grab;}
#canvasHost canvas.is-dragging{cursor:grabbing;cursor:-webkit-grabbing;}
