:root{--bg-primary:#06060a;--bg-card:#0e0e14;--bg-elevated:#14141c;--text-primary:#f0f0f5;--text-secondary:#8888a0;--text-muted:#5a5a6e;--accent:#6366f1;--accent-light:#818cf8;--accent-glow:rgba(99,102,241,.3);--border:rgba(255,255,255,.06);--border-light:rgba(255,255,255,.1);--radius:16px;--radius-sm:10px;--shadow:0 8px 32px rgba(0,0,0,.4);--sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;font:16px/1.5 var(--sans);color:var(--text-primary);background:var(--bg-primary);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);min-height:100svh;overflow-x:hidden}#app{flex-direction:column;max-width:480px;min-height:100svh;margin:0 auto;display:flex;position:relative}.platform-desktop #app{max-width:720px;padding:40px 0 60px}.platform-desktop .product-intro-desc{max-width:420px}.platform-desktop .stat-value{font-size:20px}.platform-desktop .bg-glow{width:500px;height:500px;top:-160px}.loading-container{flex-direction:column;justify-content:center;align-items:center;min-height:100svh;display:flex}.loading-container>*+*{margin-top:20px}.loading-spinner{border:3px solid var(--border-light);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;-webkit-animation:.8s linear infinite spin;animation:.8s linear infinite spin}@-webkit-keyframes spin{to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--text-secondary);font-size:14px}.error-container{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:32px;display:flex}.error-container>*+*{margin-top:16px}.error-icon{background:rgba(255,71,87,.1);border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:28px;display:flex}.error-title{color:var(--text-primary);font-size:18px;font-weight:600}.error-msg{color:var(--text-secondary);font-size:14px;line-height:1.6}.retry-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:24px;margin-top:8px;padding:10px 28px;font-size:14px;font-weight:500;transition:opacity .2s}.retry-btn:active{opacity:.7}.cancelled-container{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:60px 32px 32px;display:flex}.cancelled-icon{border:1px solid var(--border-light);background:rgba(255,255,255,.04);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:24px;display:flex}.cancelled-icon svg{width:40px;height:40px;color:var(--text-muted)}.cancelled-title{color:var(--text-primary);margin-bottom:8px;font-size:18px;font-weight:600}.cancelled-desc{color:var(--text-secondary);margin-bottom:32px;font-size:14px;line-height:1.6}.cancelled-home-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:24px;align-items:center;padding:10px 28px;font-size:14px;font-weight:500;transition:opacity .2s;display:inline-flex}.cancelled-home-btn:active{opacity:.7}.share-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 20px;display:flex}.header-brand{align-items:center;display:flex}.header-brand>*+*{margin-left:10px}.header-logo{background:linear-gradient(135deg, var(--accent), var(--accent-light));color:#fff;border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:flex}.header-title{color:var(--text-primary);font-size:15px;font-weight:600}.header-action{background:var(--bg-elevated);border:1px solid var(--border-light);color:var(--text-secondary);cursor:pointer;border-radius:20px;align-items:center;padding:6px 14px;font-size:12px;transition:all .2s;display:flex}.header-action:active{background:var(--border)}.header-action svg{width:14px;height:14px;margin-right:6px}.product-intro{text-align:center;padding:6px 20px 2px}.product-intro-title{color:var(--text-secondary);letter-spacing:.5px;margin-bottom:6px;font-size:13px;font-weight:600}.product-intro-desc{color:var(--text-muted);max-width:320px;margin:0 auto 10px;font-size:13px;line-height:1.6}.product-stats{justify-content:center;padding:4px 0;display:flex}.stat-item{text-align:center;flex:1}.stat-value{color:var(--text-secondary);font-size:13px;font-weight:600;line-height:1.2}.stat-unit{color:var(--text-muted);margin-left:1px;font-size:10px;font-weight:400}.stat-label{color:var(--text-muted);margin-top:2px;font-size:10px}.action-bar{padding:10px 20px;padding-bottom:max(10px, env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg-primary);margin-top:auto}.action-btn-primary{background:linear-gradient(135deg, var(--accent), var(--accent-light));color:#fff;cursor:pointer;width:100%;box-shadow:0 4px 20px var(--accent-glow);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:none;border-radius:12px;justify-content:center;align-items:center;padding:12px;font-size:15px;font-weight:600;transition:opacity .2s,transform .1s;display:flex}.action-btn-primary>*+*{margin-left:8px}.action-btn-primary:active{opacity:.85;transform:scale(.98)}.action-btn-primary svg{width:18px;height:18px}.share-footer{padding:8px 20px;padding-bottom:max(8px, env(safe-area-inset-bottom));justify-content:center;align-items:center;display:flex}.share-footer>*+*{margin-left:6px}.footer-text{color:var(--text-muted);font-size:11px}.footer-link{color:var(--accent-light);font-size:11px;text-decoration:none}.bg-glow{background:radial-gradient(circle, var(--accent-glow) 0%, transparent 70%);pointer-events:none;z-index:-1;opacity:.4;width:280px;height:280px;position:fixed;top:-80px;left:50%;transform:translate(-50%)}.viewer3d-overlay{z-index:9999;background:#000;position:fixed;top:0;bottom:0;left:0;right:0}.viewer3d-container{width:100vw;height:100vh}.viewer3d-loading{z-index:10;color:#fff;background:rgba(0,0,0,.85);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.viewer3d-loading>*+*{margin-top:16px}.viewer3d-loading.hidden{display:none}.viewer3d-spinner{border:4px solid rgba(255,255,255,.2);border-top-color:var(--accent);border-radius:50%;width:48px;height:48px;-webkit-animation:1s linear infinite spin;animation:1s linear infinite spin}.viewer3d-spinner.hidden{display:none}.viewer3d-loading-text{color:var(--text-secondary);font-size:14px}.viewer3d-close-btn{z-index:20;color:#fff;cursor:pointer;background:rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.2);border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:background .2s;display:flex;position:absolute;top:16px;right:16px}@supports (backdrop-filter:blur(8px)){.viewer3d-close-btn{backdrop-filter:blur(8px)}}.viewer3d-close-btn:active{background:rgba(255,255,255,.15)}.viewer3d-close-btn svg{width:20px;height:20px}.viewer3d-reset-btn{z-index:20;color:#ddd;cursor:pointer;background:rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.25);border-radius:20px;padding:8px 16px;font-size:12px;transition:background .2s,color .2s;position:absolute;bottom:16px;right:16px}@supports (backdrop-filter:blur(8px)){.viewer3d-reset-btn{backdrop-filter:blur(8px)}}.viewer3d-reset-btn:active{color:#fff;background:rgba(255,255,255,.15)}.viewer3d-overlay.viewer3d-modal{background:rgba(0,0,0,.6);justify-content:center;align-items:center;font-family:Open Sans,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans CJK SC,sans-serif;display:flex}.viewer3d-modal .viewer3d-window{background:#f4f5f5;border-radius:12px;width:92vw;max-width:920px;height:80vh;max-height:600px;position:relative;overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,.4)}.viewer3d-modal .viewer3d-container{width:auto;height:auto;position:absolute;top:44px;bottom:16px;left:16px;right:16px}.viewer3d-modal .viewer3d-container.viewer3d-gauss-viewport{width:auto;height:auto;bottom:0;left:0;right:0}.viewer3d-window-title{z-index:15;text-align:center;color:#262626;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;padding:20px 64px 0;font-size:15px;font-weight:500;position:absolute;top:0;left:0;right:0;overflow:hidden}.viewer3d-modal button{font-family:inherit}.viewer3d-modal .viewer3d-close-btn{color:#595959;background:#fff;border:none;width:34px;height:34px;top:8px;right:8px;box-shadow:0 0 8px rgba(13,13,13,.05)}.viewer3d-modal .viewer3d-close-btn svg{width:16px;height:16px}.viewer3d-modal .viewer3d-close-btn:active{background:#e9ebeb}.viewer3d-modal .viewer3d-reset-btn{color:#595959;background:#fff;border:none;box-shadow:0 0 8px rgba(13,13,13,.05)}.viewer3d-modal .viewer3d-reset-btn:active{color:#262626;background:#e9ebeb}.viewer3d-modal .viewer3d-loading{background:#f4f5f5}.viewer3d-modal .viewer3d-loading-text{color:#595959}.viewer3d-modal .viewer3d-loading-text[style]{color:#e5484d}.viewer3d-progress{width:76px;height:76px;position:relative}.viewer3d-progress:before{content:"";background:radial-gradient(circle,rgba(0,227,227,.5) 0%,rgba(0,227,227,0) 72%);border-radius:50%;position:absolute;top:16px;bottom:16px;left:16px;right:16px}.viewer3d-progress svg{transform-origin:50%;-webkit-filter:drop-shadow(0 0 6px rgba(0,227,227,.6));filter:drop-shadow(0 0 6px rgba(0,227,227,.6));width:100%;height:100%;display:block;position:relative;overflow:visible}.viewer3d-progress circle{fill:none;stroke-width:5px}.viewer3d-progress-track{stroke:rgba(0,227,227,.18)}.viewer3d-progress-arc{stroke:#00e3e3;stroke-linecap:round;stroke-dasharray:188.5;stroke-dashoffset:188.5px;transition:stroke-dashoffset .15s linear}.viewer3d-progress-num{color:#fff;text-shadow:0 0 8px rgba(0,227,227,.9);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:15px;font-weight:600;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.viewer3d-progress.viewer3d-progress-indeterminate .viewer3d-progress-arc{stroke-dasharray:141 47.5;transition:none}.viewer3d-progress.viewer3d-progress-indeterminate svg{-webkit-animation:1s linear infinite viewer3d-progress-spin;animation:1s linear infinite viewer3d-progress-spin}@-webkit-keyframes viewer3d-progress-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes viewer3d-progress-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.viewer3d-controls-hint{color:#aaa;z-index:20;white-space:nowrap;background:rgba(0,0,0,.6);border-radius:20px;padding:8px 16px;font-size:11px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}@supports (backdrop-filter:blur(8px)){.viewer3d-controls-hint{backdrop-filter:blur(8px)}}.viewer3d-info-panel{color:#fff;z-index:20;background:rgba(0,0,0,.7);border-radius:8px;padding:10px 14px;font-size:12px;line-height:1.6;position:absolute;top:12px;left:12px}@supports (backdrop-filter:blur(8px)){.viewer3d-info-panel{backdrop-filter:blur(8px)}}.viewer3d-info-panel .viewer3d-work-header{align-items:center;margin-bottom:4px;display:flex}.viewer3d-info-panel .viewer3d-work-header>*+*{margin-left:6px}.viewer3d-info-panel .viewer3d-work-avatar{object-fit:cover;border-radius:50%;width:20px;height:20px}.viewer3d-info-panel .viewer3d-work-author{color:#ccc;font-size:12px}.viewer3d-info-panel .viewer3d-work-name{color:#fff;margin-bottom:2px;font-size:14px;font-weight:600}.viewer3d-info-panel .viewer3d-work-prefix{color:#888;margin-right:6px;font-size:11px;font-weight:400}.viewer3d-splat-count,.viewer3d-fps-display{color:#aaa;font-variant-numeric:tabular-nums;font-size:11px}.viewer3d-view-selector{z-index:20;backdrop-filter:blur(8px);background:rgba(0,0,0,.7);border-radius:8px;gap:4px;padding:6px 10px;font-size:12px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.viewer3d-view-selector button{color:#ccc;cursor:pointer;backdrop-filter:blur(4px);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:4px;padding:4px 10px;font-size:11px;transition:background .2s,color .2s,border-color .2s}.viewer3d-view-selector button:hover{color:#fff;background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.35)}.viewer3d-view-selector button.active{color:#4fc3f7;background:rgba(79,195,247,.12);border-color:#4fc3f7}.viewer3d-axis-lock{z-index:20;backdrop-filter:blur(8px);background:rgba(0,0,0,.7);border-radius:8px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;display:flex;position:absolute;top:52px;left:50%;transform:translate(-50%)}.viewer3d-axis-label{color:#888;margin-right:2px;font-size:11px}.viewer3d-axis-lock button{color:#ccc;cursor:pointer;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:4px;padding:3px 10px;font-size:11px;font-weight:600;transition:background .2s,color .2s,border-color .2s}.viewer3d-axis-lock button:hover{color:#fff;background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.35)}.viewer3d-axis-lock button.active{color:#4fc3f7;background:rgba(79,195,247,.12);border-color:#4fc3f7}.viewer3d-axis-lock-hidden .viewer3d-axis-lock{display:none}.viewer3d-candidate-panel{z-index:20;backdrop-filter:blur(8px);background:rgba(0,0,0,.7);border-radius:8px;align-items:center;gap:14px;padding:4px 10px;display:flex;position:absolute;top:92px;left:50%;transform:translate(-50%)}.viewer3d-cand-group{align-items:center;gap:4px;display:flex}.viewer3d-cand-label{color:#888;margin-right:2px;font-size:11px}.viewer3d-candidate-panel button{color:#ccc;cursor:pointer;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:4px;padding:3px 8px;font-size:11px;transition:background .2s,color .2s,border-color .2s}.viewer3d-candidate-panel button:hover{color:#fff;background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.35)}.viewer3d-cand-elev-display,.viewer3d-cand-azim-display{color:#4fc3f7;text-align:center;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;min-width:38px;font-size:12px}.viewer3d-toggle-bbox-btn{z-index:20;cursor:pointer;backdrop-filter:blur(8px);background:rgba(0,0,0,.6) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ddd' stroke-width='1.5'%3E%3Cpath d='M4 8V6a2 2 0 0 1 2-2h2M16 4h2a2 2 0 0 1 2 2v2M20 16v2a2 2 0 0 1-2 2h-2M8 20H6a2 2 0 0 1-2-2v-2'/%3E%3C/svg%3E") 50%/20px no-repeat;border:1px solid rgba(255,255,255,.25);border-radius:8px;width:36px;height:36px;transition:background .2s,border-color .2s;position:absolute;bottom:96px;right:16px}.viewer3d-toggle-bbox-btn:hover{background-color:rgba(255,255,255,.15)}.viewer3d-toggle-bbox-btn.active{background-color:rgba(79,195,247,.12);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234fc3f7' stroke-width='1.5'%3E%3Cpath d='M4 8V6a2 2 0 0 1 2-2h2M16 4h2a2 2 0 0 1 2 2v2M20 16v2a2 2 0 0 1-2 2h-2M8 20H6a2 2 0 0 1-2-2v-2'/%3E%3C/svg%3E");border-color:#4fc3f7}.viewer3d-toggle-axes-btn{z-index:20;color:#ddd;cursor:pointer;backdrop-filter:blur(8px);background:rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.25);border-radius:20px;padding:8px 16px;font-size:12px;font-weight:600;transition:background .2s,color .2s,border-color .2s;position:absolute;bottom:56px;right:16px}.viewer3d-toggle-axes-btn:hover{color:#fff;background:rgba(255,255,255,.15)}.viewer3d-toggle-axes-btn.active{color:#4fc3f7;background:rgba(79,195,247,.12);border-color:#4fc3f7}.viewer3d-toggle-grid-btn{z-index:20;cursor:pointer;backdrop-filter:blur(8px);background:rgba(0,0,0,.6) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ddd' stroke-width='1.5'%3E%3Cpath d='M3 9h18M3 15h18M9 3v18M15 3v18'/%3E%3C/svg%3E") 50%/20px no-repeat;border:1px solid rgba(255,255,255,.25);border-radius:8px;width:36px;height:36px;transition:background .2s,border-color .2s;position:absolute;bottom:136px;right:16px}.viewer3d-toggle-grid-btn:hover{background-color:rgba(255,255,255,.15)}.viewer3d-toggle-grid-btn.active{background-color:rgba(79,195,247,.12);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234fc3f7' stroke-width='1.5'%3E%3Cpath d='M3 9h18M3 15h18M9 3v18M15 3v18'/%3E%3C/svg%3E");border-color:#4fc3f7}.viewer3d-toolbar-toggle-btn{z-index:20;cursor:pointer;backdrop-filter:blur(8px);background:rgba(0,0,0,.6) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ddd' stroke-width='1.5'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16M15 5v4M8 10v4M16 15v4'/%3E%3C/svg%3E") 50%/20px no-repeat;border:1px solid rgba(255,255,255,.25);border-radius:8px;width:36px;height:36px;transition:background .2s,border-color .2s;position:absolute;bottom:16px;right:90px}.viewer3d-toolbar-toggle-btn:hover{background-color:rgba(255,255,255,.15)}.viewer3d-toolbar-toggle-btn.active{background-color:rgba(79,195,247,.12);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234fc3f7' stroke-width='1.5'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16M15 5v4M8 10v4M16 15v4'/%3E%3C/svg%3E");border-color:#4fc3f7}.viewer3d-overlay.toolbar-off .viewer3d-toolbar-item{display:none}.platform-mobile .viewer3d-view-selector{top:auto;bottom:56px;left:50%;transform:translate(-50%)}.platform-mobile .viewer3d-axis-lock{top:auto;bottom:104px;left:50%;transform:translate(-50%)}.platform-mobile .viewer3d-candidate-panel{top:auto;bottom:152px;left:50%;transform:translate(-50%)}.platform-mobile .viewer3d-controls-hint{display:none}.apk-panel-mask{z-index:10000;background:0 0;justify-content:center;align-items:flex-end;transition:background .3s;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.apk-panel-mask.apk-panel-mask-visible{background:rgba(0,0,0,.5)}.apk-panel{background:var(--bg-card);width:100%;max-width:480px;padding:0 20px;padding-bottom:max(20px, env(safe-area-inset-bottom));border-radius:20px 20px 0 0;transition:transform .3s;transform:translateY(100%)}.apk-panel-mask-visible .apk-panel{transform:translateY(0)}.apk-panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 0 12px;display:flex}.apk-panel-title{color:var(--text-primary);font-size:16px;font-weight:600}.apk-panel-close{background:var(--bg-elevated);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .2s;display:flex}.apk-panel-close:active{background:var(--border-light)}.apk-panel-close svg{width:16px;height:16px}.apk-panel-list{-webkit-overflow-scrolling:touch;max-height:50vh;padding:8px 0;overflow-y:auto}.apk-panel-loading{color:var(--text-secondary);justify-content:center;align-items:center;padding:32px 0;font-size:14px;display:flex}.apk-panel-loading>*+*{margin-left:8px}.apk-panel-spinner{border:2px solid var(--border-light);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;-webkit-animation:.8s linear infinite spin;animation:.8s linear infinite spin}.apk-panel-empty{text-align:center;color:var(--text-muted);padding:32px 0;font-size:14px}.apk-panel-item{border-bottom:1px solid var(--border);color:inherit;align-items:center;padding:14px 0;text-decoration:none;transition:background .15s;display:flex}.apk-panel-item:last-child{border-bottom:none}.apk-panel-item:active{background:var(--bg-elevated)}.apk-panel-item-icon{width:36px;height:36px;color:var(--accent);background:rgba(108,92,231,.1);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;margin-right:12px;display:flex}.apk-panel-item-icon svg{width:18px;height:18px}.apk-panel-item-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;font-weight:500;overflow:hidden}.apk-panel-item-action{background:var(--accent);color:#fff;border-radius:16px;flex-shrink:0;margin-left:12px;padding:6px 16px;font-size:12px;font-weight:500}.platform-desktop .apk-panel-mask{align-items:center}.platform-desktop .apk-panel{border-radius:20px;max-width:400px;padding-bottom:20px}
