.site-footer{text-align:center;width:100%;color:var(--app-text-soft);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 10px;font-size:13px;line-height:1.6;display:flex}.site-footer--app{opacity:.7;padding:24px 0 8px}.site-footer--auth{z-index:1;flex:none;padding:20px 16px 28px;position:relative}.site-footer__separator{color:currentColor;opacity:.45}.site-footer__record-link{color:inherit;white-space:nowrap;text-underline-offset:3px;text-decoration:none;transition:color .16s}.site-footer__record-link:hover{color:var(--color-primary);text-decoration:underline}.site-footer__record-link:focus-visible{color:var(--color-primary);outline:2px solid var(--color-primary);outline-offset:3px;border-radius:2px}@media (width<=480px){.site-footer__separator{display:none}.site-footer>span:not(.site-footer__separator),.site-footer__record-link{flex-basis:100%}}.scene-card{border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);height:100%;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s cubic-bezier(.16,1,.3,1),border-color .25s;overflow:hidden}.scene-card:hover{box-shadow:var(--shadow-lg);border-color:var(--color-border-strong);transform:translateY(-4px)}.scene-card--disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.3)}.scene-card--disabled:hover{box-shadow:none;border-color:var(--color-border);transform:none}.scene-card__cover-wrap{position:relative;overflow:hidden}.scene-card__cover-img{aspect-ratio:16/10;object-fit:cover;width:100%;transition:transform .5s cubic-bezier(.16,1,.3,1);display:block}.scene-card:hover .scene-card__cover-img{transform:scale(1.06)}.scene-card--disabled:hover .scene-card__cover-img{transform:none}.scene-card__cover-placeholder{aspect-ratio:16/10;background:linear-gradient(145deg, var(--color-primary-soft) 0%, var(--color-surface-2) 100%);width:100%}.scene-card__cover-wrap:after{content:"";pointer-events:none;opacity:.6;background:linear-gradient(#00000040 0%,#0000 40% 100%);transition:opacity .3s;position:absolute;inset:0}.scene-card:hover .scene-card__cover-wrap:after{opacity:1}.scene-card__tags{z-index:1;gap:6px;display:flex;position:absolute;top:10px;left:10px}.scene-card__tags .ant-tag{border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:0 8px;font-size:11px;line-height:20px}.scene-card__actions{opacity:0;z-index:1;gap:6px;transition:opacity .2s,transform .2s;display:flex;position:absolute;top:10px;right:10px;transform:translateY(-6px)}.scene-card:hover .scene-card__actions{opacity:1;transform:translateY(0)}.scene-card__actions .ant-btn{background:var(--color-surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow-md);border:1px solid var(--color-border);color:var(--app-text-soft);transition:background .15s,color .15s,border-color .15s}.scene-card__actions .ant-btn:hover{background:var(--color-surface-2);color:var(--app-text);border-color:var(--color-border-strong)}.scene-card__actions .ant-btn-dangerous:hover{color:var(--color-danger);border-color:var(--color-danger)}.scene-card .ant-card-body{background:var(--color-surface)}.scene-card__meta{color:var(--app-text-soft);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;max-width:140px;font-size:12px;line-height:1;display:inline-flex;overflow:hidden}.scene-card__like{color:var(--app-text-soft);cursor:pointer;border-radius:var(--radius-sm);-webkit-user-select:none;user-select:none;align-items:center;gap:4px;margin-left:auto;padding:2px 6px;font-size:13px;line-height:1;transition:color .2s,transform .15s,background .2s;display:inline-flex}.scene-card__like:hover{color:#ff4d6a;background:#ff4d6a14;transform:scale(1.1)}.scene-card__like--active{color:#ff4d6a}.scene-card__like--active:hover{transform:scale(1.15)}.scene-card__views{color:var(--app-text-soft);align-items:center;gap:4px;font-size:12px;line-height:1;display:inline-flex}.auth-page{min-height:100vh;min-height:var(--vh,100vh);background:var(--color-bg);background-image:radial-gradient(60% 50% at 20% 12%,#1677ff2e,#0000 60%),radial-gradient(55% 45% at 82% 20%,#785aff29,#0000 58%),radial-gradient(70% 55% at 78% 88%,#00c8be24,#0000 62%),radial-gradient(50% 50% at 12% 82%,#1677ff1f,#0000 60%);background-repeat:no-repeat;flex-direction:column;display:flex;position:relative;overflow:hidden}.auth-page:before,.auth-page:after{content:"";filter:blur(90px);opacity:.55;pointer-events:none;z-index:0;border-radius:50%;position:absolute}.auth-page:before{background:radial-gradient(circle,#1677ff80,#0000 70%);width:460px;height:460px;animation:16s ease-in-out infinite auth-float-a;top:-140px;left:-120px}.auth-page:after{background:radial-gradient(circle,#785aff6b,#0000 70%);width:520px;height:520px;animation:20s ease-in-out infinite auth-float-b;bottom:-180px;right:-140px}[data-theme=dark] .auth-page{background-image:radial-gradient(60% 50% at 20% 12%,#1677ff47,#0000 60%),radial-gradient(55% 45% at 82% 20%,#785aff3d,#0000 58%),radial-gradient(70% 55% at 78% 88%,#00c8be33,#0000 62%),radial-gradient(50% 50% at 12% 82%,#1677ff2e,#0000 60%)}[data-theme=dark] .auth-page:before,[data-theme=dark] .auth-page:after{opacity:.4}@keyframes auth-float-a{0%,to{transform:translate(0)}50%{transform:translate(40px,50px)}}@keyframes auth-float-b{0%,to{transform:translate(0)}50%{transform:translate(-50px,-40px)}}@media (prefers-reduced-motion:reduce){.auth-page:before,.auth-page:after{animation:none}}.auth-page__content{flex-direction:column;flex:1;justify-content:center;align-items:center;padding:40px 16px;display:flex}.auth-page__box{width:100%;max-width:360px}.auth-page__header{flex-direction:column;align-items:center;gap:12px;margin-bottom:36px;display:flex}.auth-page__logo{object-fit:contain;width:auto;height:56px}.auth-page__subtitle{color:var(--app-text-soft);text-align:center;font-size:14px}.scene-resource-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=768px){.scene-resource-grid{grid-template-columns:1fr}}.scene-resource-grid{align-items:stretch}.resource-card{background:#fff;border:1px solid #0505050f;border-radius:14px;flex-direction:column;gap:14px;height:100%;padding:20px;display:flex}.resource-card__head{align-items:center;gap:8px;display:flex}.resource-card__title{color:#000000e0;font-size:15px;font-weight:600}.resource-card__subtitle{color:#00000073;margin:0;font-size:12px}.cover-card__body{align-items:stretch;gap:16px;display:flex}.cover-card__hints{flex-direction:column;flex-shrink:0;justify-content:center;gap:10px;width:150px;display:flex}.cover-hint{color:#0000008c;align-items:center;gap:8px;font-size:12px;line-height:1.4;display:flex}.cover-hint__dot{background:#4096ff;border-radius:50%;flex-shrink:0;width:6px;height:6px}.cover-card__body .ant-upload-wrapper,.cover-card__body .ant-upload.ant-upload-select{flex:1;width:100%!important;height:auto!important;margin:0!important}.cover-dropzone{color:#4096ff;cursor:pointer;background:linear-gradient(#f5f9ff 0%,#eef4ff 100%);border:1px dashed #b3d1ff;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:150px;padding:20px;transition:background .2s,border-color .2s,transform .2s,box-shadow .2s;display:flex}.ant-upload.ant-upload-select:hover .cover-dropzone{background:linear-gradient(#eaf3ff 0%,#e2edff 100%);border-color:#4096ff;transform:translateY(-2px);box-shadow:0 6px 18px #4096ff2e}.ant-upload.ant-upload-select:hover .cover-dropzone__icon{transform:scale(1.08)}.cover-dropzone__icon{color:#4096ff;font-size:34px;transition:transform .2s}.cover-dropzone__title{color:#000000bf;font-size:14px;font-weight:600}.cover-dropzone__hint{color:#0006;font-size:12px}.cover-preview{object-fit:cover;border-radius:12px;width:100%;min-height:150px;max-height:220px}.music-card__body{text-align:center;background:linear-gradient(#f3f8ff 0%,#eaf1ff 100%);border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:16px 12px;display:flex}.music-card__illustration{color:#4096ff;justify-content:center;align-items:center;gap:4px;display:flex}.music-card__bars{align-items:center;gap:3px;height:40px;display:flex}.music-card__bars span{background:#7db3ff;border-radius:2px;width:3px;display:block}.music-card__headphone{color:#4096ff;margin:0 6px;font-size:30px}.music-card__title{color:#000000bf;font-size:14px;font-weight:600}.music-card__hint{color:#00000073;max-width:240px;margin:0;font-size:12px}.music-card__selected{color:#4096ff;font-size:12px}.loading-overlay{z-index:50;background:var(--color-bg);justify-content:center;align-items:center;transition:opacity .5s;display:flex;position:absolute;inset:0}.loading-overlay[data-ready]{opacity:0;pointer-events:none}.loading-content{text-align:center;flex-direction:column;align-items:center;display:flex}.loading-title{color:var(--app-text);letter-spacing:-.5px;margin:0 0 24px;font-size:20px;font-weight:600}.progress-bar{background:#00000014;border-radius:4px;width:240px;max-width:60vw;height:6px;margin:0 auto;overflow:hidden}.progress-fill{background:var(--color-primary);border-radius:4px;height:100%;transition:width .3s cubic-bezier(.25,1,.5,1)}.progress-text{color:var(--app-text-soft);margin-top:12px;font-size:14px;font-weight:500;display:block}.error-title{color:var(--app-text);margin:0 0 8px;font-size:20px;font-weight:600}.error-desc{color:var(--color-danger);word-break:break-word;max-width:80vw;margin:0 0 24px;font-size:15px}.retry-btn{background:var(--color-primary);color:#fff;border-radius:var(--glass-radius-pill);cursor:pointer;transition:var(--transition-spring);border:none;padding:12px 28px;font-size:15px;font-weight:500}.retry-btn:hover{background:var(--color-primary-hover);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.retry-btn:active{transform:translateY(0)}.joystick-base{bottom:calc(120px + env(safe-area-inset-bottom,0px));touch-action:none;-webkit-user-select:none;user-select:none;z-index:20;pointer-events:auto;-webkit-backdrop-filter:blur(12px);background:#ffffff1f;border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:20px;box-shadow:0 4px 24px #0000004d}.joystick-knob{pointer-events:none;background:#ffffffd9;border-radius:50%;width:44px;height:44px;transition:transform 50ms ease-out;box-shadow:0 4px 12px #00000040}.joystick-base:active{background:#ffffff2e;box-shadow:0 8px 32px #0006}.joystick-base:active .joystick-knob{background:#fff;box-shadow:0 4px 16px #0000004d}.vt-nav{cursor:pointer;width:40px;height:28px;color:var(--app-text-soft);transition:var(--transition-spring);background:0 0;border:none;border-radius:14px;outline:none;justify-content:center;align-items:center;display:flex}.vt-nav svg{width:16px;height:16px}.vt-nav:hover:not(:disabled){color:var(--app-text);background:#ffffff14}.vt-nav:disabled{opacity:.25;cursor:default;pointer-events:none}.viewer-toolbar{z-index:20;pointer-events:auto;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);box-shadow:var(--glass-shadow);border-radius:30px;flex-direction:column;gap:10px;padding:6px;display:flex;position:absolute;top:50%;right:20px;transform:translateY(-50%)}.vt-btn{cursor:pointer;width:40px;height:40px;color:var(--app-text-soft);transition:var(--transition-spring);background:0 0;border:none;border-radius:50%;outline:none;justify-content:center;align-items:center;display:flex;position:relative}.vt-btn svg{width:20px;height:20px}.vt-btn:hover{color:var(--app-text);background:#ffffff1a}.vt-btn--active{color:var(--app-text);background:#ffffff26;box-shadow:0 4px 12px #0000004d}.vt-speed{justify-content:center;align-items:center;display:flex;position:relative}.vt-speed__popover{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);box-shadow:var(--glass-shadow);z-index:30;border-radius:20px;flex-direction:column;align-items:center;gap:10px;padding:14px 12px;display:flex;position:absolute;top:50%;right:56px;transform:translateY(-50%)}.vt-speed__value{color:var(--app-text);text-align:center;min-width:36px;font-size:13px;font-weight:600}.vt-speed__slider{writing-mode:vertical-lr;width:6px;height:120px;accent-color:var(--app-text);cursor:pointer;direction:rtl}.vt-btn:after{content:attr(data-tip);color:#1c1c1e;white-space:nowrap;opacity:0;pointer-events:none;background:#ffffffe6;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:500;transition:opacity .2s;position:absolute;top:50%;right:56px;transform:translateY(-50%)}@media (hover:hover){.vt-btn:hover:after{opacity:1}}@media (width<=1199px){.viewer-toolbar{gap:8px;right:16px}.vt-btn{width:38px;height:38px}}@media (width<=767px){.viewer-toolbar{gap:6px;right:12px}.vt-btn{width:36px;height:36px}.vt-btn svg{width:18px;height:18px}}.vbp-handle{border:var(--glass-border);background:var(--glass-bg);width:52px;height:28px;-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow);color:var(--app-text);cursor:pointer;pointer-events:auto;opacity:1;border-radius:14px;justify-content:center;align-items:center;transition:opacity .3s,transform .3s;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.vbp-handle.hidden{opacity:0;pointer-events:none;transform:translate(-50%)translateY(20px)}.vbp-handle svg{width:18px;height:18px}.vbp-handle:hover{background:var(--glass-bg-hover)}.viewer-bottom-panel{pointer-events:auto;background:var(--glass-bg);width:90%;max-width:460px;-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);box-shadow:var(--glass-shadow);border-radius:18px;padding:12px 16px;transition:transform .4s cubic-bezier(.175,.885,.32,1),opacity .3s;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.viewer-bottom-panel.hidden{opacity:0;pointer-events:none;transform:translate(-50%)translateY(calc(100% + 40px))}.vbp-collapse{width:26px;height:26px;color:var(--app-text-soft);cursor:pointer;background:#ffffff14;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:8px;right:10px}.vbp-collapse:hover{color:var(--app-text);background:#ffffff2e}.vbp-collapse svg{width:16px;height:16px}.vbp-body{align-items:center;gap:12px;padding-right:28px;display:flex}.vbp-avatar{object-fit:cover;width:40px;height:40px;color:var(--app-text);background:#ffffff1f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:600;display:flex}.vbp-text{flex:1;min-width:0}.vbp-name{color:var(--app-text);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;line-height:1.3;overflow:hidden}.vbp-desc{color:var(--app-text-soft);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;line-height:1.4;overflow:hidden}.vbp-dot{margin:0 6px}.vbp-share{width:36px;height:36px;color:var(--app-text);cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.vbp-share:hover{background:#fff3;transform:scale(1.06)}.vbp-share svg{width:18px;height:18px}@media (width<=767px){.viewer-bottom-panel{width:calc(100% - 24px);max-width:none;padding:10px 14px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));border-radius:16px;bottom:16px}.vbp-avatar{width:36px;height:36px;font-size:14px}.vbp-name{font-size:14px}.vbp-desc{font-size:11px}}.card-backdrop{-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:none;z-index:80;background:#00000080;transition:opacity .3s;position:absolute;inset:0}.card-backdrop.visible{opacity:1;pointer-events:auto}.scene-info-card{-webkit-backdrop-filter:blur(16px);z-index:90;pointer-events:none;background:#1c1c1ee0;border-left:1px solid #ffffff1a;flex-direction:column;width:100%;max-width:400px;padding:40px 32px;transition:transform .5s cubic-bezier(.175,.885,.32,1);display:flex;position:absolute;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-8px 0 32px #0006}.scene-info-card.visible{pointer-events:auto;transform:translate(0)}.scene-info-card.bottom-sheet{width:100%;max-width:none;height:auto;max-height:80vh;padding:32px 24px calc(24px + env(safe-area-inset-bottom,0px));border-top:1px solid #ffffff1a;border-left:none;border-radius:24px 24px 0 0;inset:auto 0 0;transform:translateY(100%);box-shadow:0 -8px 32px #0006}.scene-info-card.bottom-sheet.visible{transform:translateY(0)}@media (width>=768px) and (width<=1199px){.scene-info-card.bottom-sheet{border-left:1px solid #ffffff1a;border-right:1px solid #ffffff1a;border-radius:24px 24px 0 0;max-width:500px;margin:0 auto}}.card-close{color:#f0f0f0;cursor:pointer;background:#ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;transition:all .2s;display:flex;position:absolute;top:24px;right:24px}.card-close:hover{background:#fff3;transform:scale(1.1)}.card-title{color:#f0f0f0;margin-top:16px;margin-bottom:16px;font-size:28px;font-weight:600;line-height:1.2}.card-desc{color:#a0a0a0;margin-bottom:24px;font-size:16px;line-height:1.6}.card-meta{flex-direction:column;gap:12px;margin-bottom:24px;display:flex}.card-meta-item{color:#d0d0d0;align-items:center;gap:8px;font-size:14px;display:flex}.card-tags{flex-wrap:wrap;gap:8px;margin-bottom:32px;display:flex}.card-tag{color:#d0d0d0;background:#ffffff14;border-radius:9999px;padding:6px 12px;font-size:13px;font-weight:500}.card-share-btn{color:#fff;cursor:pointer;background:#4096ff;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:auto;padding:14px;font-size:16px;font-weight:500;transition:transform .2s,background .2s;display:flex}.card-share-btn:hover,.card-share-btn:active{background:#69b1ff;transform:scale(.98)}.effects-panel-backdrop{z-index:100;-webkit-backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;animation:.2s effectsFadeIn;display:flex;position:fixed;inset:0}@keyframes effectsFadeIn{0%{opacity:0}to{opacity:1}}.effects-panel{background:#141820f2;border:1px solid #ffffff1a;border-radius:16px;width:min(420px,90vw);max-height:80vh;animation:.25s effectsSlideUp;overflow-y:auto;box-shadow:0 20px 60px #0009}@keyframes effectsSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.effects-panel__header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex}.effects-panel__title{color:#eef7fb;letter-spacing:.5px;font-size:15px;font-weight:600}.effects-panel__close{color:#8b99a8;cursor:pointer;background:#ffffff14;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;transition:all .15s;display:flex}.effects-panel__close:hover{color:#eef7fb;background:#ffffff26}.effects-panel__grid{grid-template-columns:repeat(3,1fr);gap:10px;padding:16px;display:grid}.effects-panel__item{cursor:pointer;color:#c8d6df;background:#ffffff08;border:1px solid #ffffff0f;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;transition:all .2s;display:flex;position:relative}.effects-panel__item:hover{background:#ffffff14;border-color:#ffffff26;transform:translateY(-1px)}.effects-panel__item--active{color:#eef7fb;background:#64c8ff1f;border-color:#64c8ff66;box-shadow:0 0 12px #64c8ff26}.effects-panel__item--active:hover{background:#64c8ff29;border-color:#64c8ff80}.effects-panel__icon{font-size:22px;line-height:1}.effects-panel__name{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:12px;overflow:hidden}.effects-panel__hint{color:#8b99a8;white-space:nowrap;pointer-events:none;opacity:.8;font-size:10px;position:absolute;bottom:-22px;left:50%;transform:translate(-50%)}@media (width<=767px){.effects-panel{width:92vw;max-height:70vh}.effects-panel__grid{grid-template-columns:repeat(3,1fr);gap:8px;padding:12px}.effects-panel__item{padding:10px 6px}.effects-panel__icon{font-size:18px}.effects-panel__name{font-size:11px}}.ai-chat-backdrop{-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:none;z-index:80;background:#00000080;transition:opacity .3s;position:absolute;inset:0}.ai-chat-backdrop.visible{opacity:1;pointer-events:auto}.ai-chat-panel{-webkit-backdrop-filter:blur(20px);z-index:90;pointer-events:none;background:#1c1c1eeb;border-left:1px solid #ffffff1a;flex-direction:column;width:100%;max-width:400px;transition:transform .5s cubic-bezier(.175,.885,.32,1);display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-8px 0 32px #0006}.ai-chat-panel.visible{pointer-events:auto;transform:translate(0)}.ai-chat-panel.bottom-sheet{border-top:1px solid #ffffff1a;border-left:none;border-radius:24px 24px 0 0;width:100%;max-width:none;height:70vh;max-height:70vh;inset:auto 0 0;transform:translateY(100%);box-shadow:0 -8px 32px #0006}.ai-chat-panel.bottom-sheet.visible{transform:translateY(0)}@media (width>=768px) and (width<=1199px){.ai-chat-panel.bottom-sheet{border-left:1px solid #ffffff1a;border-right:1px solid #ffffff1a;border-radius:24px 24px 0 0;max-width:500px;margin:0 auto}}.ai-chat-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.ai-chat-header__title{color:#f0f0f0;align-items:center;gap:10px;font-size:18px;font-weight:600;display:flex}.ai-chat-header__icon{width:22px;height:22px;color:var(--color-primary,#4096ff)}.ai-chat-close{color:#f0f0f0;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;transition:all .2s;display:flex}.ai-chat-close:hover{background:#fff3;transform:scale(1.1)}.ai-chat-messages{flex-direction:column;flex:1;gap:12px;padding:20px 16px;display:flex;overflow-y:auto}.ai-chat-empty{text-align:center;color:#a0a0a0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:40px 20px;display:flex}.ai-chat-empty__icon{opacity:.5;width:48px;height:48px;margin-bottom:12px}.ai-chat-empty p{margin:0;font-size:15px}.ai-chat-empty__hint{opacity:.7;font-size:13px}.ai-chat-bubble{word-break:break-word;white-space:pre-wrap;border-radius:16px;max-width:80%;padding:10px 14px;font-size:14px;line-height:1.5}.ai-chat-bubble--user{background:var(--color-primary,#4096ff);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.ai-chat-bubble--ai{color:#e8e8e8;background:#ffffff1a;border-bottom-left-radius:4px;align-self:flex-start}.ai-chat-typing{align-items:center;gap:4px;padding:12px 16px;display:flex}.ai-chat-typing .dot{background:#a0a0a0;border-radius:50%;width:6px;height:6px;animation:1.4s infinite both typing-bounce}.ai-chat-typing .dot:nth-child(2){animation-delay:.16s}.ai-chat-typing .dot:nth-child(3){animation-delay:.32s}@keyframes typing-bounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.ai-chat-input-area{padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid #ffffff14;align-items:center;gap:8px;display:flex}.ai-chat-input{color:#f0f0f0;background:#ffffff14;border:1px solid #ffffff26;border-radius:20px;outline:none;flex:1;height:40px;padding:0 14px;font-size:14px;transition:border-color .2s,background .2s}.ai-chat-input::placeholder{color:#8a8a8a}.ai-chat-input:focus{border-color:var(--color-primary,#4096ff);background:#ffffff1f}.ai-chat-input:disabled{opacity:.6}.ai-chat-send{background:var(--color-primary,#4096ff);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;transition:transform .2s,opacity .2s;display:flex}.ai-chat-send svg{width:18px;height:18px}.ai-chat-send:hover:not(:disabled){transform:scale(1.08)}.ai-chat-send:active:not(:disabled){transform:scale(.94)}.ai-chat-send:disabled{opacity:.4;cursor:not-allowed}.voice-marker-layer{pointer-events:none;z-index:15;position:absolute;inset:0;overflow:hidden}.voice-marker-icon{--voice-marker-size:clamp(46px, 12vw, 54px);pointer-events:auto;cursor:pointer;flex-direction:column;align-items:center;gap:clamp(4px,.4vw,6px);transition:opacity .3s;display:flex;position:absolute}.voice-marker-icon.hidden{opacity:0;pointer-events:none}.voice-marker-icon__waves{width:var(--voice-marker-size);height:var(--voice-marker-size);-webkit-backdrop-filter:blur(8px);background:#4096ff33;border:1.5px solid #4096ff80;border-radius:50%;justify-content:center;align-items:center;gap:clamp(2.5px,.24vw,4px);transition:background-color .3s,border-color .3s,box-shadow .3s,transform .3s;animation:3s ease-in-out infinite marker-pulse;display:flex;box-shadow:0 0 12px #4096ff4d,inset 0 0 8px #4096ff1a}.voice-marker-icon:hover .voice-marker-icon__waves{background:#4096ff59;border-color:#4096ffcc;transform:scale(1.1);box-shadow:0 0 20px #4096ff80,inset 0 0 12px #4096ff33}.voice-marker-icon.playing .voice-marker-icon__waves{background:#4096ff66;border-color:#4096ffe6;animation:1.5s ease-in-out infinite marker-pulse-active;box-shadow:0 0 24px #4096ff99,inset 0 0 12px #4096ff4d}.wave-bar{background:#4096ffe6;border-radius:2px;width:clamp(3px,.23vw,4px);animation:2s ease-in-out infinite wave-idle;display:block}.wave-bar:first-child{height:19%;animation-delay:0s}.wave-bar:nth-child(2){height:32%;animation-delay:.15s}.wave-bar:nth-child(3){height:42%;animation-delay:.3s}.wave-bar:nth-child(4){height:32%;animation-delay:.45s}.wave-bar:nth-child(5){height:19%;animation-delay:.6s}.voice-marker-icon.playing .wave-bar{background:#fff;animation:.6s ease-in-out infinite wave-active}.voice-marker-icon.playing .wave-bar:first-child{animation-delay:0s}.voice-marker-icon.playing .wave-bar:nth-child(2){animation-delay:80ms}.voice-marker-icon.playing .wave-bar:nth-child(3){animation-delay:.16s}.voice-marker-icon.playing .wave-bar:nth-child(4){animation-delay:.24s}.voice-marker-icon.playing .wave-bar:nth-child(5){animation-delay:.32s}@keyframes wave-idle{0%,to{transform:scaleY(.6)}50%{transform:scaleY(1)}}@keyframes wave-active{0%,to{transform:scaleY(.4)}50%{transform:scaleY(1.2)}}@keyframes marker-pulse{0%,to{box-shadow:0 0 12px #4096ff4d,inset 0 0 8px #4096ff1a}50%{box-shadow:0 0 18px #4096ff66,inset 0 0 10px #4096ff26}}@keyframes marker-pulse-active{0%,to{box-shadow:0 0 20px #4096ff80,inset 0 0 12px #4096ff33}50%{box-shadow:0 0 32px #4096ffb3,inset 0 0 16px #4096ff59}}.voice-marker-icon__delete{color:#fff;cursor:pointer;opacity:0;pointer-events:auto;background:#ff4d4fe6;border:none;border-radius:50%;justify-content:center;align-items:center;width:clamp(18px,1.5vw,24px);height:clamp(18px,1.5vw,24px);font-size:clamp(10px,.72vw,12px);transition:opacity .2s,transform .2s;display:flex;position:absolute;top:clamp(-8px,-.5vw,-6px);right:clamp(-8px,-.5vw,-6px)}.voice-marker-icon:hover .voice-marker-icon__delete{opacity:1}.voice-marker-icon__delete:hover{transform:scale(1.2)}.voice-marker-icon__name{color:#fff;white-space:nowrap;text-overflow:ellipsis;background:#0009;border-radius:4px;max-width:clamp(80px,7vw,120px);padding:clamp(2px,.18vw,3px) clamp(6px,.48vw,8px);font-size:clamp(11px,.8vw,13px);overflow:hidden}@media (width>=768px){.voice-marker-icon{--voice-marker-size:clamp(54px, 6vw, 64px)}}@media (width>=1200px){.voice-marker-icon{--voice-marker-size:clamp(62px, 4.5vw, 76px)}}@media (prefers-reduced-motion:reduce){.voice-marker-icon,.voice-marker-icon__waves,.wave-bar{transition-duration:.01ms;animation:none}}.vmp-click-overlay{z-index:50;cursor:crosshair;pointer-events:auto;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.vmp-click-overlay--picking{cursor:wait}.vmp-crosshair{animation:2s ease-in-out infinite crosshair-pulse}@keyframes crosshair-pulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.vmp-hint{-webkit-backdrop-filter:blur(8px);color:#f0f0f0;pointer-events:none;background:#000000b3;border-radius:20px;margin-top:16px;padding:8px 16px;font-size:14px;font-weight:500}.vmp-recording-panel{z-index:55;-webkit-backdrop-filter:blur(16px);pointer-events:auto;background:#1c1c1ee6;border:1px solid #ffffff1a;border-radius:20px;flex-direction:column;align-items:center;gap:16px;padding:20px 28px;display:flex;position:absolute;bottom:100px;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #0006}.vmp-recording-indicator{align-items:center;gap:10px;display:flex}.vmp-rec-dot{background:#ff4d4f;border-radius:50%;width:12px;height:12px;animation:1s ease-in-out infinite rec-blink}@keyframes rec-blink{0%,to{opacity:1}50%{opacity:.3}}.vmp-rec-time{color:#f0f0f0;font-variant-numeric:tabular-nums;font-size:24px;font-weight:600}.vmp-recording-actions{gap:12px;display:flex}.vmp-btn{cursor:pointer;border:none;border-radius:12px;padding:10px 20px;font-size:14px;font-weight:500;transition:transform .2s,background .2s}.vmp-btn:active{transform:scale(.95)}.vmp-btn--cancel{color:#f0f0f0;background:#ffffff1a}.vmp-btn--cancel:hover{background:#fff3}.vmp-btn--stop{color:#fff;background:#4096ff}.vmp-btn--stop:hover{background:#69b1ff}.vmp-uploading{color:#a0a0a0;align-items:center;gap:10px;font-size:15px;display:flex}.vmp-uploading-dot{background:#4096ff;border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite rec-blink}.vmp-error{z-index:60;color:#fff;pointer-events:auto;background:#ff4d4fe6;border-radius:10px;align-items:center;gap:10px;padding:10px 16px;font-size:14px;display:flex;position:absolute;top:80px;left:50%;transform:translate(-50%)}.vmp-error button{color:#fff;cursor:pointer;opacity:.7;background:0 0;border:none;font-size:14px}.vmp-error button:hover{opacity:1}.vmp-cancel-btn{z-index:55;-webkit-backdrop-filter:blur(8px);color:#f0f0f0;cursor:pointer;pointer-events:auto;background:#ffffff1a;border:1px solid #ffffff26;border-radius:20px;padding:10px 24px;font-size:14px;transition:background .2s;position:absolute;bottom:40px;left:50%;transform:translate(-50%)}.vmp-cancel-btn:hover{background:#fff3}html,body{width:100%;height:100%}input::-ms-clear{display:none}input::-ms-reveal{display:none}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:#0000;font-family:sans-serif;line-height:1.15}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{text-align:left;caption-side:bottom;padding-top:.75em;padding-bottom:.3em}input,button,select,optgroup,textarea{color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner{border-style:none;padding:0}[type=button]::-moz-focus-inner{border-style:none;padding:0}[type=reset]::-moz-focus-inner{border-style:none;padding:0}[type=submit]::-moz-focus-inner{border-style:none;padding:0}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{resize:vertical;overflow:auto}fieldset{border:0;min-width:0;margin:0;padding:0}legend{width:100%;max-width:100%;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal;margin-bottom:.5em;padding:0;display:block}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button{height:auto}[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}:root{--app-text:#0f172a;--app-text-soft:#52627a;--color-accent:#1677ff;--color-primary:#1677ff;--color-primary-hover:#4096ff;--color-primary-soft:#e6f4ff;--color-bg:#f5f5f5;--color-surface:#fff;--color-surface-2:#fafafa;--color-border:#f0f0f0;--color-border-strong:#d9d9d9;--color-success:#52c41a;--color-danger:#ff4d4f;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-pill:9999px;--shadow-sm:0 1px 2px #00000008, 0 1px 6px #00000005;--shadow-md:0 2px 8px #0000000f;--shadow-lg:0 6px 16px #00000014}[data-theme=dark]{--app-text:#e8eaed;--app-text-soft:#9aa0a6;--color-primary-soft:#112545;--color-bg:#0f0f0f;--color-surface:#1c1c1e;--color-surface-2:#252528;--color-border:#2c2c2e;--color-border-strong:#3a3a3c;--shadow-sm:0 1px 2px #0003, 0 1px 6px #00000026;--shadow-md:0 2px 8px #0000004d;--shadow-lg:0 8px 24px #0006}.glow-bg{background-color:var(--color-bg);background-image:radial-gradient(55% 45% at 15% 8%,#1677ff1f,#0000 60%),radial-gradient(50% 40% at 88% 14%,#785aff1a,#0000 58%),radial-gradient(60% 50% at 82% 92%,#00c8be17,#0000 62%),radial-gradient(45% 45% at 8% 88%,#1677ff14,#0000 60%);background-repeat:no-repeat;background-attachment:fixed;position:relative}[data-theme=dark] .glow-bg{background-image:radial-gradient(55% 45% at 15% 8%,#1677ff33,#0000 60%),radial-gradient(50% 40% at 88% 14%,#785aff29,#0000 58%),radial-gradient(60% 50% at 82% 92%,#00c8be24,#0000 62%),radial-gradient(45% 45% at 8% 88%,#1677ff1f,#0000 60%)}*{box-sizing:border-box;margin:0;padding:0}html,body{overscroll-behavior:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,PingFang SC,Hiragino Sans GB,sans-serif}body{color:var(--app-text);background:var(--color-bg);margin:0}body,button,input,textarea,select{font:inherit}button{border:0}a{color:inherit}img{max-width:100%;display:block}#root{min-height:100%}.ant-app{min-height:100vh}.viewer-container{--glass-bg:#ffffff1a;--glass-bg-hover:#ffffff2e;--glass-blur:blur(12px);--glass-border:1px solid #ffffff26;--glass-shadow:0 4px 24px #0000004d;--glass-radius-pill:9999px;--transition-spring:all .3s cubic-bezier(.175, .885, .32, 1.275);--app-text:#f0f0f0;--app-text-soft:#a0a0a0;--color-surface:#1c1c1e;--color-primary:#4096ff;--color-primary-hover:#69b1ff;--color-primary-soft:#4096ff26;width:100%;height:100dvh;position:relative;overflow:hidden}.hud-layer{pointer-events:none;z-index:10;opacity:1;transition:opacity .3s;position:absolute;inset:0}.hud-layer>*{pointer-events:auto}.viewer-logo{object-fit:contain;pointer-events:none;z-index:15;opacity:.35;width:220px;height:auto;max-height:72px;position:absolute;top:16px;left:50%;transform:translate(-50%)}@media (width<=1199px){.viewer-logo{width:180px;max-height:60px}}@media (width<=767px){.viewer-logo{width:72px;max-height:26px;top:12px}}.back-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;cursor:pointer;z-index:20;background:#0f172a8c;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;transition:background .2s,transform .15s;display:flex;position:absolute;top:20px;left:20px}.back-btn:hover{background:#0f172acc;transform:scale(1.08)}.back-btn:active{transform:scale(.95)}.like-btn{border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;cursor:pointer;z-index:20;background:#0f172a8c;border:none;align-items:center;gap:6px;height:40px;padding:0 14px;font-size:18px;transition:background .2s,transform .15s;display:flex;position:absolute;top:20px;right:20px}.like-btn:hover{background:#0f172acc;transform:scale(1.06)}.like-btn:active{transform:scale(.92)}.like-btn--active{color:#ff4d6a;background:#ff4d6a33}.like-btn--active:hover{background:#ff4d6a59}.like-btn__count{font-size:14px;font-weight:500}.music-btn{border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;cursor:pointer;background:#0f172a8c;border:none;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;transition:all .2s;display:flex;position:absolute;top:20px;right:80px}.music-btn:hover{background:#0f172acc;transform:scale(1.06)}.music-btn:active{transform:scale(.92)}.music-btn--active{color:#1677ff;background:#1677ff33}.music-btn--active:hover{background:#1677ff59}
