:root{--bg-deep: #070b12;--panel-bg: rgba(11, 17, 29, .78);--panel-bg-strong: rgba(13, 20, 34, .9);--border-subtle: rgba(148, 163, 184, .16);--border-highlight: rgba(56, 189, 248, .48);--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--accent-cyan: #38bdf8;--accent-blue: #0284c7;--accent-emerald: #10b981;--accent-amber: #f59e0b;--font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", "JetBrains Mono", Menlo, Monaco, Consolas, monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden;background-color:var(--bg-deep);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none}button{font-family:inherit;color:inherit;background:none;border:none;cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}.app-shell{position:relative;width:100vw;height:100vh;overflow:hidden}.viewport-wrapper{position:absolute;top:0;right:0;bottom:0;left:0}.three-canvas-host{width:100%;height:100%}.three-canvas-host canvas{display:block;width:100%;height:100%;outline:none}.callout-overlay-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.callout-tag{position:absolute;top:0;left:0;pointer-events:auto;display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#090f1adb;border:1px solid rgba(56,189,248,.42);box-shadow:0 6px 20px #00000073;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:11.5px;white-space:nowrap;transition:border-color .18s ease,background-color .18s ease}.callout-tag:hover,.callout-tag.is-selected{background:#0e74905c;border-color:#7dd3fc}.callout-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-cyan);box-shadow:0 0 8px var(--accent-cyan)}.callout-code{font-family:var(--font-mono);font-size:10.5px;color:var(--accent-cyan);font-weight:600}.callout-name{color:var(--text-primary);font-weight:500}.hover-hint-pill,.viewport-gesture-tip{position:absolute;top:72px;left:50%;transform:translate(-50%);pointer-events:none;display:inline-flex;align-items:center;gap:8px;padding:5px 14px;border-radius:999px;font-size:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.hover-hint-pill{background:#0e1e34e0;border:1px solid var(--border-highlight);color:#e0f2fe}.hover-hint-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-cyan)}.viewport-gesture-tip{background:#0b111d8f;border:1px solid rgba(148,163,184,.12);color:var(--text-secondary)}.hud-top-bar{position:absolute;top:12px;left:16px;right:16px;height:50px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--panel-bg);border:1px solid var(--border-subtle);border-radius:12px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 8px 28px #00000059;z-index:10}.brand-block{display:flex;align-items:center;gap:12px;min-width:0}.brand-badge{padding:3px 8px;border-radius:6px;background:linear-gradient(135deg,#0ea5e940,#0284c773);border:1px solid rgba(56,189,248,.45);color:#7dd3fc;font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.05em;flex-shrink:0}.brand-title{font-size:14.5px;font-weight:600;letter-spacing:.02em;color:var(--text-primary);white-space:nowrap}.brand-subtitle{font-size:11px;color:var(--text-secondary);white-space:nowrap}.hud-toggle-group{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}.hud-chip-btn{padding:5px 11px;border-radius:8px;font-size:12px;font-weight:500;color:var(--text-secondary);background:#1e293b73;border:1px solid rgba(148,163,184,.15);transition:all .16s ease;white-space:nowrap}.hud-chip-btn:hover{color:var(--text-primary);border-color:#94a3b859}.hud-chip-btn.is-active{color:#e0f2fe;background:#0ea5e938;border-color:#38bdf88c}.hud-chip-btn.is-accent.is-active{color:#ecfdf5;background:#10b9813d;border-color:#34d399a6;box-shadow:0 0 14px #10b98140}.hud-sidebar-left,.hud-sidebar-right{position:absolute;top:74px;width:282px;max-height:calc(100vh - 196px);display:flex;flex-direction:column;padding:14px;background:var(--panel-bg);border:1px solid var(--border-subtle);border-radius:14px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 12px 34px #0000006b;z-index:10}.hud-sidebar-left{left:16px}.hud-sidebar-left.is-collapsed{max-height:none}.hud-sidebar-right{right:16px;width:296px}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:10px}.panel-eyebrow{display:block;font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.08em;color:var(--accent-cyan);margin-bottom:2px}.panel-title{font-size:14.5px;font-weight:600;color:var(--text-primary);line-height:1.3}.panel-collapse-btn{padding:3px 9px;border-radius:6px;font-size:11.5px;color:var(--text-secondary);background:#1e293b99;border:1px solid var(--border-subtle);flex-shrink:0}.panel-collapse-btn:hover{color:var(--text-primary);border-color:#94a3b85c}.mode-segmented-control{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:3px;border-radius:9px;background:#0f172ad9;border:1px solid rgba(148,163,184,.14);margin-bottom:10px;flex-shrink:0}.segment-btn{padding:5px 8px;border-radius:6px;font-size:11.5px;font-weight:500;color:var(--text-secondary);transition:all .15s ease}.segment-btn.is-active{background:#0ea5e940;color:#e0f2fe;box-shadow:inset 0 0 0 1px #38bdf866}.stage-list{display:flex;flex-direction:column;gap:6px;overflow-y:auto;padding-right:3px}.stage-list::-webkit-scrollbar,.part-chip-list::-webkit-scrollbar{width:4px}.stage-list::-webkit-scrollbar-thumb,.part-chip-list::-webkit-scrollbar-thumb{background:#94a3b840;border-radius:999px}.stage-card{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:8px 9px;border-radius:10px;background:#0f172a85;border:1px solid rgba(148,163,184,.1);transition:all .16s ease}.stage-card:hover{background:#1e293ba6;border-color:#94a3b847}.stage-card.is-done{border-color:#10b98147}.stage-card.is-current{background:#0e749042;border-color:var(--border-highlight)}.stage-index-badge{width:24px;height:24px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--text-secondary);background:#1e293bd9;flex-shrink:0}.stage-card.is-done .stage-index-badge{color:#6ee7b7;background:#10b98133}.stage-card.is-current .stage-index-badge{color:#e0f2fe;background:#0ea5e973}.stage-card-body{min-width:0;flex:1}.stage-card-title{font-size:12.5px;font-weight:600;color:var(--text-primary);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stage-card-sub{font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stage-percent-tag{font-family:var(--font-mono);font-size:10.5px;color:var(--text-muted);flex-shrink:0}.inspector-code-row{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.part-code-pill{padding:2px 7px;border-radius:5px;background:#38bdf826;border:1px solid rgba(56,189,248,.35);color:var(--accent-cyan);font-family:var(--font-mono);font-size:11px;font-weight:600}.part-en-name{font-size:11px;color:var(--text-muted)}.inspector-desc{font-size:12px;line-height:1.55;color:#cbd5e1;margin-bottom:12px}.spec-grid{display:flex;flex-direction:column;gap:7px;margin-bottom:12px}.spec-cell-half-row{display:grid;grid-template-columns:1fr 1fr;gap:7px}.spec-cell{padding:7px 9px;border-radius:8px;background:#0f172aa6;border:1px solid rgba(148,163,184,.12)}.spec-cell dt{font-size:10.5px;color:var(--text-muted);margin-bottom:2px}.spec-cell dd{font-size:12px;font-weight:500;color:var(--text-primary);line-height:1.35}.inspector-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.action-btn{padding:8px 10px;border-radius:8px;font-size:12px;font-weight:600;background:#1e293bb8;border:1px solid rgba(148,163,184,.22);color:var(--text-primary);transition:all .15s ease}.action-btn:hover{border-color:#38bdf88c}.action-btn.is-primary{background:linear-gradient(135deg,#0284c7,#0369a1);border-color:#7dd3fc73}.action-btn.is-highlighted{background:#f59e0b38;border-color:#f59e0b99;color:#fde68a}.sop-meta-box{padding:9px 10px;border-radius:10px;background:#0f172aad;border:1px solid rgba(148,163,184,.14);margin-bottom:12px}.sop-meta-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;margin-bottom:7px}.sop-meta-label{color:var(--text-secondary)}.sop-meta-value{color:#7dd3fc;font-weight:600}.sop-safety-alert{padding-top:7px;border-top:1px dashed rgba(148,163,184,.16);font-size:11.5px;line-height:1.5;color:#fcd34d}.sub-section-label{font-size:11px;font-weight:600;color:var(--text-secondary);margin-bottom:7px}.part-chip-list{display:flex;flex-direction:column;gap:5px}.part-chip-list.is-scrollable{overflow-y:auto;padding-right:3px}.part-quick-item{display:flex;align-items:center;gap:8px;padding:6px 9px;border-radius:8px;background:#0f172a8c;border:1px solid rgba(148,163,184,.1);text-align:left;transition:all .15s ease}.part-quick-item:hover{background:#1e293bcc;border-color:#38bdf866}.part-color-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.part-quick-name{flex:1;font-size:12px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.part-quick-code{font-family:var(--font-mono);font-size:10.5px;color:var(--text-muted)}.hud-bottom-dock{position:absolute;bottom:14px;left:50%;transform:translate(-50%);width:min(920px,calc(100vw - 32px));padding:12px 18px;background:var(--panel-bg-strong);border:1px solid var(--border-subtle);border-radius:16px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 14px 40px #00000085;z-index:12}.timeline-slider-row{display:flex;align-items:center;gap:12px;margin-bottom:10px}.timeline-state-tag{min-width:82px;padding:3px 8px;border-radius:6px;text-align:center;background:#1e293bcc;border:1px solid rgba(148,163,184,.18);font-family:var(--font-mono);font-size:11px;color:#bae6fd}.slider-track-container{position:relative;flex:1;height:22px;display:flex;align-items:center}.explosion-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;border-radius:999px;background-color:#1e293bf2;background-image:linear-gradient(90deg,#0ea5e9,#34d399);background-repeat:no-repeat;cursor:pointer;z-index:2}.explosion-range-input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#f8fafc;border:2.5px solid #0ea5e9;box-shadow:0 0 12px #38bdf8bf;transition:transform .12s ease}.explosion-range-input::-webkit-slider-thumb:hover{transform:scale(1.15)}.slider-stage-ticks{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.stage-tick{position:absolute;top:50%;width:2px;height:10px;transform:translate(-50%,-50%);background:#94a3b859;border-radius:1px}.stage-tick.is-passed{background:#34d399d9}.timeline-percent-readout{min-width:52px;text-align:right;font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--accent-cyan)}.dock-controls-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.primary-playback-btns,.secondary-controls-group,.speed-pill-group,.camera-preset-group{display:flex;align-items:center;gap:6px}.dock-btn{padding:6px 13px;border-radius:8px;font-size:12.5px;font-weight:600;border:1px solid rgba(148,163,184,.22);background:#1e293bbf;transition:all .15s ease;white-space:nowrap}.dock-btn:hover:not(:disabled){border-color:#7dd3fc8c;background:#1e3a5fb3}.dock-btn.is-disassemble{background:linear-gradient(135deg,#0ea5e952,#0284c785);border-color:#38bdf885;color:#e0f2fe}.dock-btn.is-assemble{background:linear-gradient(135deg,#10b98147,#0596697a);border-color:#34d39980;color:#d1fae5}.dock-btn.is-running{box-shadow:0 0 16px #38bdf861}.dock-divider{width:1px;height:18px;background:#94a3b833;margin:0 2px}.mini-pill-btn{padding:4px 9px;border-radius:6px;font-size:11.5px;color:var(--text-secondary);background:#0f172aa6;border:1px solid rgba(148,163,184,.14);transition:all .15s ease;white-space:nowrap}.mini-pill-btn:hover{color:var(--text-primary);border-color:#38bdf866}.mini-pill-btn.is-active{color:#e0f2fe;background:#0ea5e940;border-color:#38bdf885}@media(max-width:1120px){.brand-subtitle,.camera-preset-group{display:none}.hud-sidebar-left,.hud-sidebar-right{width:244px}}.back-index-btn{padding:5px 11px;border-radius:7px;background:#1e293bb8;border:1px solid rgba(148,163,184,.25);color:#e2e8f0;font-size:12px;font-weight:600;white-space:nowrap;transition:all .15s ease}.back-index-btn:hover{color:#fff;background:#0ea5e947;border-color:#38bdf88c}.route-loading-screen{width:100vw;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--bg-deep);color:var(--text-secondary);font-size:13.5px}.loading-spinner{width:34px;height:34px;border-radius:50%;border:2.5px solid rgba(56,189,248,.2);border-top-color:var(--accent-cyan);animation:spin-rotate .8s linear infinite}@keyframes spin-rotate{to{transform:rotate(360deg)}}.index-page-scroll{position:relative;width:100vw;height:100vh;overflow-y:auto;overflow-x:hidden;background:radial-gradient(circle at 18% 0%,rgba(14,165,233,.14),transparent 44%),radial-gradient(circle at 85% 12%,rgba(16,185,129,.09),transparent 40%),var(--bg-deep);-webkit-user-select:text;user-select:text}.index-bg-grid{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(148,163,184,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.04) 1px,transparent 1px);background-size:36px 36px}.index-container{position:relative;max-width:1140px;margin:0 auto;padding:44px 24px 64px}.index-hero{margin-bottom:34px;padding:28px 30px;border-radius:18px;background:#0b121fd1;border:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 18px 48px #0000005c}.index-domain-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.domain-pill{padding:4px 10px;border-radius:6px;background:linear-gradient(135deg,#0ea5e947,#0284c780);border:1px solid rgba(56,189,248,.5);color:#bae6fd;font-family:var(--font-mono);font-size:11.5px;font-weight:700;letter-spacing:.06em}.domain-status-pill{display:inline-flex;align-items:center;gap:7px;padding:4px 10px;border-radius:6px;background:#0f172ac7;border:1px solid rgba(148,163,184,.18);color:var(--text-secondary);font-family:var(--font-mono);font-size:11px}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-emerald);box-shadow:0 0 8px var(--accent-emerald)}.index-hero-title{font-size:clamp(22px,3vw,30px);font-weight:700;letter-spacing:-.01em;margin-bottom:10px;color:#f8fafc}.index-hero-desc{max-width:820px;font-size:14px;line-height:1.65;color:var(--text-secondary);margin-bottom:22px}.index-stats-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.stat-item{padding:12px 14px;border-radius:12px;background:#0f172ab8;border:1px solid rgba(148,163,184,.14)}.stat-label{display:block;font-size:11.5px;color:var(--text-muted);margin-bottom:4px}.stat-value{font-size:14px;font-weight:600;color:var(--text-primary)}.stat-value.is-prompt{font-size:12.5px;color:#7dd3fc}.index-table-section,.showcase-cards-section{margin-bottom:34px}.section-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}.section-eyebrow{display:block;font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.08em;color:var(--accent-cyan);margin-bottom:3px}.section-heading{font-size:17px;font-weight:600;color:var(--text-primary)}.index-search-input{width:min(280px,100%);padding:8px 13px;border-radius:9px;background:#0f172ad9;border:1px solid rgba(148,163,184,.22);color:var(--text-primary);font-size:12.5px;outline:none}.index-search-input:focus{border-color:var(--accent-cyan)}.index-table-wrapper{overflow-x:auto;border-radius:14px;background:#0b121fd6;border:1px solid var(--border-subtle)}.index-data-table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}.index-data-table th{padding:12px 16px;font-size:11.5px;font-weight:600;color:var(--text-muted);background:#0f172ad1;border-bottom:1px solid rgba(148,163,184,.14);white-space:nowrap}.index-data-table td{padding:14px 16px;border-bottom:1px solid rgba(148,163,184,.09);vertical-align:middle}.index-table-row{cursor:pointer;transition:background-color .15s ease}.index-table-row:hover{background:#0ea5e914}.col-mono{font-family:var(--font-mono);font-size:12px;color:#cbd5e1;white-space:nowrap}.model-badge-group{display:flex;flex-direction:column;gap:3px}.model-name-badge{display:inline-block;width:fit-content;padding:2px 8px;border-radius:6px;background:#38bdf829;border:1px solid rgba(56,189,248,.38);color:#7dd3fc;font-weight:600;font-size:12px}.model-tier-sub{font-size:11px;color:var(--text-muted)}.row-title{font-weight:600;color:var(--text-primary);margin-bottom:2px}.row-sub{font-size:11.5px;color:var(--text-secondary)}.stack-tag-row{display:flex;flex-wrap:wrap;gap:5px}.stack-mini-tag{padding:2px 7px;border-radius:5px;background:#1e293bd9;border:1px solid rgba(148,163,184,.16);font-family:var(--font-mono);font-size:11px;color:#cbd5e1}.table-enter-btn{padding:6px 12px;border-radius:8px;background:linear-gradient(135deg,#0284c7,#0369a1);border:1px solid rgba(125,211,252,.42);color:#f0f9ff;font-size:12px;font-weight:600;white-space:nowrap}.table-enter-btn:hover{filter:brightness(1.1)}.empty-table-cell{text-align:center;padding:28px;color:var(--text-muted)}.showcase-card-grid{display:grid;grid-template-columns:1fr;gap:20px}.showcase-card{display:grid;grid-template-columns:minmax(300px,460px) 1fr;border-radius:18px;overflow:hidden;background:#0b121fdb;border:1px solid var(--border-subtle);box-shadow:0 16px 40px #0000005c;transition:border-color .2s ease,transform .2s ease}.showcase-card:hover{border-color:#38bdf873}.showcase-cover-box{position:relative;cursor:pointer;background:#060a11;overflow:hidden;min-height:280px}.showcase-cover-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}.showcase-card:hover .showcase-cover-img{transform:scale(1.025)}.cover-overlay-badges{position:absolute;top:12px;left:12px;right:12px;display:flex;align-items:center;justify-content:space-between;gap:8px;pointer-events:none}.cover-state-pill,.cover-serial-pill{padding:4px 10px;border-radius:999px;background:#090e18d6;border:1px solid rgba(148,163,184,.25);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:11px;color:#e2e8f0}.cover-serial-pill{font-family:var(--font-mono);color:var(--accent-cyan);font-weight:700}.showcase-card-content{padding:24px 26px;display:flex;flex-direction:column;justify-content:space-between;gap:14px}.card-meta-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid rgba(148,163,184,.12);font-size:12.5px}.card-meta-key{color:var(--text-muted)}.card-model-highlight{color:#38bdf8;font-weight:600}.showcase-card-title{font-size:19px;font-weight:700;color:#f8fafc}.showcase-card-summary{font-size:13px;line-height:1.65;color:#cbd5e1}.showcase-highlight-list{padding-left:18px;display:flex;flex-direction:column;gap:5px;font-size:12.5px;line-height:1.5;color:var(--text-secondary)}.showcase-card-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-top:8px}.card-prompt-box{display:inline-flex;align-items:center;gap:8px;padding:6px 11px;border-radius:8px;background:#0f172acc;border:1px solid rgba(148,163,184,.16);font-size:12px}.prompt-label{font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--accent-amber)}.prompt-content{color:#e2e8f0}.launch-viewer-btn{padding:10px 20px;border-radius:10px;background:linear-gradient(135deg,#0ea5e9,#0284c7);border:1px solid rgba(125,211,252,.55);box-shadow:0 8px 24px #0284c752;color:#fff;font-size:13.5px;font-weight:600;transition:transform .15s ease,filter .15s ease}.launch-viewer-btn:hover{transform:translateY(-1px);filter:brightness(1.08)}.index-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding-top:20px;border-top:1px solid rgba(148,163,184,.12);font-size:12px;color:var(--text-muted)}@media(max-width:900px){.showcase-card{grid-template-columns:1fr}}
