webgal-engine 4.5.18 → 4.5.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{OPPOSans-R-ea925359.ttf.gz → OPPOSans-R-tAcFw8I3.ttf.gz} +0 -0
- package/dist/assets/{LXGWWenKai-Regular-9375313a.ttf → ResourceHanRoundedCN-Regular-C1HdCLVq.ttf} +0 -0
- package/dist/assets/ResourceHanRoundedCN-Regular-C1HdCLVq.ttf.gz +0 -0
- package/dist/assets/{SourceHanSerifCN-Regular-1e60cc2e.ttf.gz → SourceHanSerifCN-Regular-B_f-kQ2u.ttf.gz} +0 -0
- package/dist/assets/conentsCash-BBWvsVB4.js +1 -0
- package/dist/assets/index-C-qIUAWt.js +4137 -0
- package/dist/assets/index-C-qIUAWt.js.gz +0 -0
- package/dist/assets/index-KtfF1_Zy.css +1 -0
- package/dist/assets/index-KtfF1_Zy.css.gz +0 -0
- package/dist/assets/{index.es-c7c86e4e.js → index.es-DYZq4yIY.js} +4 -4
- package/dist/assets/index.es-DYZq4yIY.js.gz +0 -0
- package/dist/assets/{initRegister-65c9ba85.js → initRegister-DR1oj6mG.js} +1 -1
- package/dist/assets/initRegister-DR1oj6mG.js.gz +0 -0
- package/dist/index.html +176 -51
- package/dist/webgal-serviceworker.js +56 -58
- package/package.json +8 -8
- package/dist/assets/LXGWWenKai-Regular-9375313a.ttf.gz +0 -0
- package/dist/assets/conentsCash-75763c1a.js +0 -1
- package/dist/assets/index-59bffd35.css +0 -1
- package/dist/assets/index-59bffd35.css.gz +0 -0
- package/dist/assets/index-6863a3b8.js +0 -4133
- package/dist/assets/index-6863a3b8.js.gz +0 -0
- package/dist/assets/index.es-c7c86e4e.js.gz +0 -0
- package/dist/assets/initRegister-65c9ba85.js.gz +0 -0
- /package/dist/assets/{OPPOSans-R-ea925359.ttf → OPPOSans-R-tAcFw8I3.ttf} +0 -0
- /package/dist/assets/{SourceHanSerifCN-Regular-1e60cc2e.ttf → SourceHanSerifCN-Regular-B_f-kQ2u.ttf} +0 -0
- /package/dist/assets/{dialog-d5b91235.mp3 → dialog-BDvwibdp.mp3} +0 -0
- /package/dist/assets/{page-flip-1-7df32409.mp3 → page-flip-1-CZ8VQh4O.mp3} +0 -0
- /package/dist/assets/{switch-1-99b576bc.mp3 → switch-1-DI-7VpPw.mp3} +0 -0
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as B,W as z,C as D,b as G,a as N,S as U,c as R,B as O,R as X}from"./index-
|
|
1
|
+
import{r as B,W as z,C as D,b as G,a as N,S as U,c as R,B as O,R as X}from"./index-C-qIUAWt.js";const $=(b,W,k,v,E,M,m)=>{const w=z.gameplay.pixiStage,x=W==="foreground"?w.foregroundEffectsContainer:w.backgroundEffectsContainer,p=R.width,a=R.height,c=new D;c.angle=m;const C=c.rotation,y=Math.abs(Math.cos(C)),d=Math.abs(Math.sin(C)),i=p*y+a*d,f=p*d+a*y;c.width=i,c.height=f,c.pivot.set(i/2,f/2),c.position.set(p/2,a/2),x.addChild(c);const r=new G(E,{scale:!0,position:!0,rotation:!0,uvs:!1,alpha:!0});c.addChild(r);const u=[],I=N.from("./game/tex/cherryBlossoms.webp"),S=(h,l)=>h+Math.random()*(l-h);for(let h=0;h<E;h++){const l=Math.random()*Math.PI*2,n=U.from(I);n.anchor.set(.5),n.x=Math.random()*i,n.y=Math.random()*f,n.rotation=Math.random()*Math.PI*2,n.scale.set(Math.cos(l)*M,Math.sin(l)*M),n.speed=(S(.5,2)+S(.1,1))*k,n.rotationSpeed=Math.random()*.015*(Math.random()<.5?1:-1),n.positionPhase=Math.random()*Math.PI*2,n.scalePhase=l,u.push(n),r.addChild(n)}function A(h){const l=Date.now()/1e3;for(const n of u){const P=Math.sin(l+n.positionPhase)*v;n.x+=P*h,n.y+=n.speed*h,n.rotation+=n.rotationSpeed*h;const H=Math.cos(l+n.scalePhase)*M,F=Math.sin(l+n.scalePhase)*M;n.scale.set(H,F);const T=Math.abs(n.width*M),t=Math.abs(n.height*M);n.x+T/2<-i?n.x=i+T/2:n.x-T/2>i&&(n.x=-i-T/2),n.y-t/2>f&&(n.x=Math.random()*i,n.y=-Math.random()*50-t,n.positionPhase=Math.random()*Math.PI*2,n.scalePhase=Math.random()*Math.PI*2,n.speed=(S(.5,2)+S(.1,1))*k,n.rotationSpeed=Math.random()*.015*(Math.random()<.5?1:-1))}}return w.registerAnimation({setStartState:()=>{},setEndState:()=>{},tickerFunc:A},b),{container:c,tickerKey:b}};B("cherryBlossoms",{fg:()=>$("cherry-blossoms-foreground-ticker","foreground",2,3,100,.05,0),bg:()=>$("cherry-blossoms-background-ticker","background",1,2,300,.025,0)});const L=(b,W,k,v,E,M)=>{const m=z.gameplay.pixiStage;m.currentApp;const w=W==="foreground"?m.foregroundEffectsContainer:m.backgroundEffectsContainer,x=R.width,p=R.height,a=new D;a.angle=M;const c=a.rotation,C=Math.abs(Math.cos(c)),y=Math.abs(Math.sin(c)),d=x*C+p*y,i=x*y+p*C;a.width=d,a.height=i,a.pivot.set(d/2,i/2),a.position.set(x/2,p/2),w.addChild(a);const f=new G(v,{scale:!0,position:!0,rotation:!0,alpha:!0,uvs:!1});a.addChild(f);const r=[],u=[],I="./game/tex/rain.png",S=128,A=640,h=5,l=[10,5,2,2,1],n=t=>{if(!t||t.length===0)return 0;const e=t.reduce((o,g)=>o+g,0);if(e<=0)return Math.floor(Math.random()*t.length);let s=Math.random()*e;for(let o=0;o<t.length;o++){if(s<t[o])return o;s-=t[o]}return t.length-1},P=(t,e=!1)=>{const s=Math.random()*.5+.5;t.scale.set(E*s),t.anchor.set(.5),e?(t.x=Math.random()*d,t.y=Math.random()*i):(t.x=Math.random()*d,t.y=-Math.random()*50-t.height),t.alpha=Math.random()*.5+.5,t.vy=(Math.random()*.4+.8)*k},H=()=>{let t;r.length===h?t=n(l):t=Math.floor(Math.random()*r.length),t=Math.max(0,Math.min(t,r.length-1));const e=new U(r[t]);return P(e,!0),e},F=t=>{for(const e of u)e.y+=e.vy*t,(e.y-e.height/2>i||e.x<-e.width||e.x>d+e.width)&&P(e,!1)};return(()=>{for(r.length=0;u.length>0;)u.pop();f.removeChildren();const t=O.from(I),e=()=>{var s;if(t.valid)for(let o=0;o<h;o++){const g=new X(o*S,0,S,A);r.push(new N(t,g))}if(r.length===0){console.error("Failed to create any raindrop textures. Cannot create sprites.");return}(s=r[0])!=null&&s.valid||console.warn("First raindrop texture is invalid after creation. Sprites might not render correctly.");for(let o=0;o<v;o++){const g=H();f.addChild(g),u.push(g)}m.registerAnimation({setStartState:()=>{},setEndState:()=>{},tickerFunc:F},b)};t.valid?e():(t.once("loaded",()=>{e()}),t.once("error",s=>{console.error(`Error loading base texture ${I}:`,s),e()}))})(),{container:a,tickerKey:b}};B("rain",{fg:()=>L("rain-foreground-ticker","foreground",30,50,.4,1),bg:()=>L("rain-background-ticker","background",20,150,.3,1)});const _=(b,W,k,v,E,M)=>{const m=z.gameplay.pixiStage;m.currentApp;const w=W==="foreground"?m.foregroundEffectsContainer:m.backgroundEffectsContainer,x=R.width,p=R.height,a=new D;a.angle=M;const c=a.rotation,C=Math.abs(Math.cos(c)),y=Math.abs(Math.sin(c)),d=x*C+p*y,i=x*y+p*C;a.width=d,a.height=i,a.pivot.set(d/2,i/2),a.position.set(x/2,p/2),w.addChild(a);const f=new G(v,{scale:!0,position:!0,rotation:!0,alpha:!0,uvs:!1});a.addChild(f);const r=[],u=[],I="./game/tex/snow.png",S=128,A=128,h=10,l=[10,2,2,2,1,1,1,2,2,2],n=t=>{if(!t||t.length===0)return 0;const e=t.reduce((o,g)=>o+g,0);if(e<=0)return Math.floor(Math.random()*t.length);let s=Math.random()*e;for(let o=0;o<t.length;o++){if(s<t[o])return o;s-=t[o]}return t.length-1},P=(t,e=!1)=>{const s=Math.random()*.5+.5;t.scale.set(E*s),t.anchor.set(.5),e?(t.x=Math.random()*d,t.y=Math.random()*i):(t.x=Math.random()*d,t.y=-Math.random()*50-t.height),t.alpha=Math.random()*.2+.8,t.vy=(Math.random()*.4+.8)*k,t.vx=(Math.random()-.5)*.25*k,t.rotationSpeed=(Math.random()-.5)*.005},H=()=>{let t;r.length===h?t=n(l):t=Math.floor(Math.random()*r.length),t=Math.max(0,Math.min(t,r.length-1));const e=new U(r[t]);return P(e,!0),e},F=t=>{for(const e of u)e.y+=e.vy*t,e.x+=e.vx*t,e.rotation+=e.rotationSpeed*t,(e.y-e.height/2>i||e.x<-e.width||e.x>d+e.width)&&P(e,!1)};return(()=>{for(r.length=0;u.length>0;)u.pop();f.removeChildren();const t=O.from(I),e=()=>{var s;if(t.valid)for(let o=0;o<h;o++){const g=new X(o*S,0,S,A);r.push(new N(t,g))}if(r.length===0){console.error("Failed to create any snowflake textures. Cannot create sprites.");return}(s=r[0])!=null&&s.valid||console.warn("First snowflake texture is invalid after creation. Sprites might not render correctly.");for(let o=0;o<v;o++){const g=H();f.addChild(g),u.push(g)}m.registerAnimation({setStartState:()=>{},setEndState:()=>{},tickerFunc:F},b)};t.valid?e():(t.once("loaded",()=>{e()}),t.once("error",s=>{console.error(`Error loading base texture ${I}:`,s),e()}))})(),{container:a,tickerKey:b}};B("snow",{fg:()=>_("snow-foreground-ticker","foreground",3,250,.4,0),bg:()=>_("snow-background-ticker","background",1,750,.2,0)});B("heavySnow",{fg:()=>_("heavy-snow-foreground-ticker","foreground",20,1e3,.6,-75),bg:()=>_("heavy-snow-background-ticker","background",10,2e3,.3,-80)});
|
|
Binary file
|
package/dist/index.html
CHANGED
|
@@ -7,8 +7,13 @@
|
|
|
7
7
|
<link rel="manifest" href="./manifest.json" />
|
|
8
8
|
<title>WebGAL</title>
|
|
9
9
|
<style>
|
|
10
|
+
html,
|
|
10
11
|
body {
|
|
12
|
+
margin: 0;
|
|
11
13
|
background: black;
|
|
14
|
+
width: 100%;
|
|
15
|
+
height: 100%;
|
|
16
|
+
overflow: hidden;
|
|
12
17
|
}
|
|
13
18
|
|
|
14
19
|
.html-body__effect-background {
|
|
@@ -129,9 +134,10 @@
|
|
|
129
134
|
.title-enter-container__link-to-github > div {
|
|
130
135
|
padding: 0 0 0.25em 0;
|
|
131
136
|
}
|
|
137
|
+
|
|
132
138
|
</style>
|
|
133
|
-
<script type="module" crossorigin src="./assets/index-
|
|
134
|
-
<link rel="stylesheet" href="./assets/index-
|
|
139
|
+
<script type="module" crossorigin src="./assets/index-C-qIUAWt.js"></script>
|
|
140
|
+
<link rel="stylesheet" crossorigin href="./assets/index-KtfF1_Zy.css">
|
|
135
141
|
</head>
|
|
136
142
|
<body>
|
|
137
143
|
<!-- 背景模糊 -->
|
|
@@ -155,29 +161,70 @@
|
|
|
155
161
|
<div id="html-body__panic-overlay"></div>
|
|
156
162
|
<!-- 应用挂载点 -->
|
|
157
163
|
<div id="root"></div>
|
|
164
|
+
<script>
|
|
165
|
+
(() => {
|
|
166
|
+
const userAgent = navigator.userAgent || '';
|
|
167
|
+
const platform = navigator.userAgentData?.platform || navigator.platform || '';
|
|
168
|
+
const maxTouchPoints = navigator.maxTouchPoints || 0;
|
|
169
|
+
const isIOSPhone = /iPhone|iPod/i.test(userAgent);
|
|
170
|
+
const isIPad = /iPad/i.test(userAgent) || (/Mac/i.test(platform) && maxTouchPoints > 1);
|
|
171
|
+
|
|
172
|
+
window.__WEBGAL_DEVICE_INFO__ = {
|
|
173
|
+
isIOS: isIOSPhone || isIPad,
|
|
174
|
+
isIOSPhone,
|
|
175
|
+
isIPad,
|
|
176
|
+
};
|
|
177
|
+
})();
|
|
178
|
+
</script>
|
|
158
179
|
<!-- 在窗口大小改变时进行强制缩放 -->
|
|
159
180
|
<script>
|
|
160
181
|
(() => {
|
|
161
|
-
const
|
|
182
|
+
const deviceInfo = window.__WEBGAL_DEVICE_INFO__ ?? { isIOS: false };
|
|
183
|
+
const isIOS = deviceInfo.isIOS;
|
|
184
|
+
const layoutConfig = isIOS
|
|
185
|
+
? {
|
|
186
|
+
bottomInset: 15,
|
|
187
|
+
resizeDelay: 500,
|
|
188
|
+
viewport:
|
|
189
|
+
'width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover',
|
|
190
|
+
hideEffectBackground: true,
|
|
191
|
+
}
|
|
192
|
+
: {
|
|
193
|
+
bottomInset: 0,
|
|
194
|
+
resizeDelay: 0,
|
|
195
|
+
viewport: 'width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no',
|
|
196
|
+
hideEffectBackground: false,
|
|
197
|
+
};
|
|
198
|
+
const root = document.querySelector('#root');
|
|
199
|
+
const titleEnter = document.querySelector('.html-body__title-enter');
|
|
200
|
+
const effectBackground = document.querySelector('.html-body__effect-background');
|
|
201
|
+
let viewportMeta = document.querySelector('meta[name="viewport"]');
|
|
202
|
+
|
|
203
|
+
const ensureViewportMeta = () => {
|
|
204
|
+
if (!viewportMeta) {
|
|
205
|
+
viewportMeta = document.createElement('meta');
|
|
206
|
+
viewportMeta.name = 'viewport';
|
|
207
|
+
document.head.appendChild(viewportMeta);
|
|
208
|
+
}
|
|
209
|
+
return viewportMeta;
|
|
210
|
+
};
|
|
211
|
+
|
|
162
212
|
const resize = () => {
|
|
163
213
|
const targetHeight = 1440; // 目标高度
|
|
164
214
|
const targetWidth = 2560; // 目标宽度
|
|
165
|
-
|
|
166
215
|
const h = window.innerHeight; // 窗口高度
|
|
167
216
|
const w = window.innerWidth; // 窗口宽度
|
|
168
|
-
const
|
|
217
|
+
const layoutHeight = Math.max(h - layoutConfig.bottomInset, 1);
|
|
218
|
+
const zoomH = layoutHeight / targetHeight; // 以窗口高度为基准的变换比
|
|
169
219
|
const zoomW = w / targetWidth; // 以窗口宽度为基准的变换比
|
|
170
220
|
const zoomH2 = w / targetHeight; // 竖屏时以窗口高度为基础的变换比
|
|
171
|
-
const zoomW2 =
|
|
172
|
-
let mh = (targetHeight -
|
|
221
|
+
const zoomW2 = layoutHeight / targetWidth; // 竖屏时以窗口宽度为基础的变换比
|
|
222
|
+
let mh = (targetHeight - layoutHeight) / 2; // y轴移动距离
|
|
173
223
|
let mw = (targetWidth - w) / 2; // x轴移动距离
|
|
174
224
|
let mh2os = targetWidth / 2 - w / 2; // 竖屏时 y轴移动距离
|
|
175
|
-
let mw2os = targetHeight / 2 -
|
|
225
|
+
let mw2os = targetHeight / 2 - layoutHeight / 2; // 竖屏时 x轴移动距离
|
|
176
226
|
let transform = '';
|
|
177
227
|
let effectBackgroundTransform = '';
|
|
178
|
-
const root = document.querySelector('#root'); // 获取根元素
|
|
179
|
-
const titleEnter = document.querySelector('.html-body__title-enter');
|
|
180
|
-
const effectBackground = document.querySelector('.html-body__effect-background');
|
|
181
228
|
const elements = [root, titleEnter];
|
|
182
229
|
if (w > h) {
|
|
183
230
|
if (effectBackground) {
|
|
@@ -213,6 +260,11 @@
|
|
|
213
260
|
// iOS 不强制旋转
|
|
214
261
|
if (isIOS) {
|
|
215
262
|
const zoomWi = w / targetWidth;
|
|
263
|
+
if (effectBackground) {
|
|
264
|
+
effectBackground.style.height = `100vh`;
|
|
265
|
+
effectBackground.style.width = `100vw`;
|
|
266
|
+
effectBackgroundTransform = '';
|
|
267
|
+
}
|
|
216
268
|
transform = `translate(${-mw}px, ${-mh}px) ` + `scale(${zoomWi},${zoomWi}) `;
|
|
217
269
|
}
|
|
218
270
|
}
|
|
@@ -225,58 +277,122 @@
|
|
|
225
277
|
}
|
|
226
278
|
}
|
|
227
279
|
};
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
metaTag.content = 'width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no';
|
|
234
|
-
// 将该标签添加到 head 中
|
|
235
|
-
document.head.appendChild(metaTag);
|
|
236
|
-
resize();
|
|
237
|
-
window.onload = resize;
|
|
238
|
-
window.onresize = resize;
|
|
239
|
-
// 监听键盘 F11 键按下事件,全屏时触发页面调整
|
|
240
|
-
document.onkeydown = (e) => {
|
|
241
|
-
if (e && e.key === 'F11') {
|
|
242
|
-
setTimeout(() => {
|
|
243
|
-
resize();
|
|
244
|
-
}, 100);
|
|
280
|
+
let iosResizeTimer = null;
|
|
281
|
+
const scheduleResize = () => {
|
|
282
|
+
if (layoutConfig.resizeDelay > 0) {
|
|
283
|
+
if (iosResizeTimer) {
|
|
284
|
+
window.clearTimeout(iosResizeTimer);
|
|
245
285
|
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
286
|
+
iosResizeTimer = window.setTimeout(() => {
|
|
287
|
+
resize();
|
|
288
|
+
iosResizeTimer = null;
|
|
289
|
+
}, layoutConfig.resizeDelay);
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
resize();
|
|
293
|
+
};
|
|
294
|
+
if (isIOS) {
|
|
254
295
|
const styleTag = document.createElement('style');
|
|
255
|
-
styleTag.textContent =
|
|
296
|
+
styleTag.textContent = `* { font-synthesis: none !important; }`;
|
|
297
|
+
if (layoutConfig.hideEffectBackground) {
|
|
298
|
+
styleTag.textContent += `
|
|
299
|
+
#ebg,
|
|
300
|
+
#ebgOverlay {
|
|
301
|
+
display: none !important;
|
|
302
|
+
}
|
|
303
|
+
`;
|
|
304
|
+
}
|
|
256
305
|
document.head.appendChild(styleTag);
|
|
257
306
|
}
|
|
307
|
+
ensureViewportMeta().content = layoutConfig.viewport;
|
|
308
|
+
scheduleResize();
|
|
309
|
+
window.onload = scheduleResize;
|
|
310
|
+
window.onresize = scheduleResize;
|
|
311
|
+
// 监听键盘 F11 键按下事件,全屏时触发页面调整
|
|
312
|
+
document.onkeydown = (e) => {
|
|
313
|
+
if (e && e.key === 'F11') {
|
|
314
|
+
setTimeout(() => {
|
|
315
|
+
scheduleResize();
|
|
316
|
+
}, 100);
|
|
317
|
+
}
|
|
318
|
+
};
|
|
258
319
|
})();
|
|
259
320
|
</script>
|
|
260
321
|
<!-- 注册 Service Worker -->
|
|
261
322
|
<script>
|
|
262
323
|
(() => {
|
|
263
|
-
const isIOS =
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
324
|
+
const isIOS = window.__WEBGAL_DEVICE_INFO__?.isIOS ?? false;
|
|
325
|
+
const localHostnames = ['localhost', '127.0.0.1', '::1'];
|
|
326
|
+
const isLocalPreview = localHostnames.includes(window.location.hostname) || window.location.protocol === 'file:';
|
|
327
|
+
const isElectron = Boolean(window.electronFuncs) || /Electron/i.test(navigator.userAgent || '');
|
|
328
|
+
const shouldBypassServiceWorker = isIOS || isLocalPreview || isElectron;
|
|
329
|
+
const webgalServiceWorkerUrl = new URL('./webgal-serviceworker.js', window.location.href).href;
|
|
330
|
+
const bypassReloadKey = 'webgal-sw-bypass-reloaded';
|
|
331
|
+
const isWebGALRegistration = (registration) => {
|
|
332
|
+
const workers = [registration.active, registration.installing, registration.waiting];
|
|
333
|
+
return workers.some((worker) => worker?.scriptURL === webgalServiceWorkerUrl);
|
|
334
|
+
};
|
|
335
|
+
const markBypassReload = () => {
|
|
336
|
+
try {
|
|
337
|
+
if (sessionStorage.getItem(bypassReloadKey) === 'true') {
|
|
338
|
+
return false;
|
|
339
|
+
}
|
|
340
|
+
sessionStorage.setItem(bypassReloadKey, 'true');
|
|
341
|
+
return true;
|
|
342
|
+
} catch {
|
|
343
|
+
return false;
|
|
344
|
+
}
|
|
345
|
+
};
|
|
346
|
+
const clearBypassReloadMark = () => {
|
|
347
|
+
try {
|
|
348
|
+
sessionStorage.removeItem(bypassReloadKey);
|
|
349
|
+
} catch {}
|
|
350
|
+
};
|
|
351
|
+
const clearWebGALServiceWorker = async () => {
|
|
352
|
+
try {
|
|
353
|
+
const registrations = await navigator.serviceWorker.getRegistrations();
|
|
354
|
+
const webgalRegistrations = registrations.filter(isWebGALRegistration);
|
|
355
|
+
const hasWebGALController = navigator.serviceWorker.controller?.scriptURL === webgalServiceWorkerUrl;
|
|
356
|
+
await Promise.all(webgalRegistrations.map((registration) => registration.unregister()));
|
|
357
|
+
if ('caches' in window) {
|
|
358
|
+
const cacheKeys = await caches.keys();
|
|
359
|
+
await Promise.all(cacheKeys.filter((key) => key.startsWith('webgal-')).map((key) => caches.delete(key)));
|
|
360
|
+
}
|
|
361
|
+
if ((webgalRegistrations.length > 0 || hasWebGALController) && navigator.serviceWorker.controller && markBypassReload()) {
|
|
362
|
+
window.location.reload();
|
|
363
|
+
}
|
|
364
|
+
} catch (error) {
|
|
365
|
+
console.warn('Failed to clear WebGAL Service Worker cache', error);
|
|
366
|
+
}
|
|
367
|
+
};
|
|
368
|
+
if (!('serviceWorker' in navigator)) {
|
|
369
|
+
return;
|
|
273
370
|
}
|
|
371
|
+
if (shouldBypassServiceWorker) {
|
|
372
|
+
clearWebGALServiceWorker();
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
if (!window.isSecureContext) {
|
|
376
|
+
return;
|
|
377
|
+
}
|
|
378
|
+
clearBypassReloadMark();
|
|
379
|
+
navigator.serviceWorker
|
|
380
|
+
.register('./webgal-serviceworker.js')
|
|
381
|
+
.then((reg) => {
|
|
382
|
+
console.log('Registration succeeded. Scope is ' + reg.scope);
|
|
383
|
+
})
|
|
384
|
+
.catch((error) => {
|
|
385
|
+
console.log('Registration failed with ' + error);
|
|
386
|
+
});
|
|
274
387
|
})();
|
|
275
388
|
</script>
|
|
276
389
|
<!-- 首屏加载 -->
|
|
277
390
|
<script>
|
|
278
391
|
(() => {
|
|
279
|
-
const isIOS =
|
|
392
|
+
const isIOS = window.__WEBGAL_DEVICE_INFO__?.isIOS ?? false;
|
|
393
|
+
const enterConfig = isIOS
|
|
394
|
+
? { skipAnimation: true, hideDelay: 0 }
|
|
395
|
+
: { skipAnimation: false, hideDelay: 2000 };
|
|
280
396
|
let enterPromiseResolve;
|
|
281
397
|
const enterPromise = new Promise((res) => {
|
|
282
398
|
enterPromiseResolve = res;
|
|
@@ -301,6 +417,17 @@
|
|
|
301
417
|
});
|
|
302
418
|
/** 点击屏幕,进入引擎主界面 */
|
|
303
419
|
const enter = () => {
|
|
420
|
+
const titleEnter = document.querySelector('.html-body__title-enter');
|
|
421
|
+
if (enterConfig.skipAnimation) {
|
|
422
|
+
if (titleEnter) {
|
|
423
|
+
titleEnter.style.pointerEvents = 'none';
|
|
424
|
+
titleEnter.style.transition = 'none';
|
|
425
|
+
titleEnter.style.opacity = '0';
|
|
426
|
+
titleEnter.style.display = 'none';
|
|
427
|
+
}
|
|
428
|
+
enterPromiseResolve();
|
|
429
|
+
return;
|
|
430
|
+
}
|
|
304
431
|
const initialBackground = document.querySelector('.title-enter__initial-background');
|
|
305
432
|
if (initialBackground) {
|
|
306
433
|
initialBackground.style.opacity = '0';
|
|
@@ -315,7 +442,6 @@
|
|
|
315
442
|
whiteBackground.style.opacity = '1';
|
|
316
443
|
}
|
|
317
444
|
}, 50); // 在50ms后开始显示白色渐变
|
|
318
|
-
const titleEnter = document.querySelector('.html-body__title-enter');
|
|
319
445
|
setTimeout(() => {
|
|
320
446
|
if (titleEnter) titleEnter.style.opacity = '0';
|
|
321
447
|
}, 500); // 500ms后开始降低落地页透明度
|
|
@@ -327,7 +453,7 @@
|
|
|
327
453
|
if (titleEnter) {
|
|
328
454
|
titleEnter.style.display = 'none';
|
|
329
455
|
}
|
|
330
|
-
},
|
|
456
|
+
}, enterConfig.hideDelay); // 将落地页设置为不显示
|
|
331
457
|
enterPromiseResolve();
|
|
332
458
|
};
|
|
333
459
|
const titleEnter = document.querySelector('.html-body__title-enter');
|
|
@@ -380,6 +506,5 @@
|
|
|
380
506
|
})();
|
|
381
507
|
</script>
|
|
382
508
|
<!-- main文件 -->
|
|
383
|
-
|
|
384
509
|
</body>
|
|
385
510
|
</html>
|
|
@@ -1,63 +1,61 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const CACHE_PREFIX = 'webgal-';
|
|
2
|
+
const CACHE_NAME = 'webgal-build-assets-v1';
|
|
3
|
+
const LOG_PREFIX = '[WebGAL SW]';
|
|
4
|
+
const HASHED_BUILD_ASSET_RE = /(^|\/)assets\/[^/?#]+-[A-Za-z0-9_-]{8,}\.(?:js|css|ttf|woff|woff2)$/;
|
|
5
|
+
const loggedKeys = new Set();
|
|
6
|
+
|
|
7
|
+
function logOnce(key, ...args) {
|
|
8
|
+
if (loggedKeys.has(key)) return;
|
|
9
|
+
loggedKeys.add(key);
|
|
10
|
+
console.log(LOG_PREFIX, ...args);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
self.addEventListener('install', (event) => {
|
|
14
|
+
logOnce('install', `install ${CACHE_NAME}`);
|
|
15
|
+
event.waitUntil(self.skipWaiting());
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
self.addEventListener('activate', (event) => {
|
|
19
|
+
logOnce('activate', `activate ${CACHE_NAME}`);
|
|
20
|
+
event.waitUntil(
|
|
21
|
+
(async () => {
|
|
22
|
+
const keys = await caches.keys();
|
|
23
|
+
await Promise.all(keys.filter((key) => key.startsWith(CACHE_PREFIX) && key !== CACHE_NAME).map((key) => caches.delete(key)));
|
|
24
|
+
await self.clients.claim();
|
|
25
|
+
})(),
|
|
26
|
+
);
|
|
4
27
|
});
|
|
5
28
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const url =
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
29
|
+
function isHashedBuildAssetRequest(request) {
|
|
30
|
+
if (request.method !== 'GET') return false;
|
|
31
|
+
const url = new URL(request.url);
|
|
32
|
+
if (url.origin !== self.location.origin) return false;
|
|
33
|
+
return HASHED_BUILD_ASSET_RE.test(url.pathname);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
async function cacheFirst(request) {
|
|
37
|
+
const cache = await caches.open(CACHE_NAME);
|
|
38
|
+
const cached = await cache.match(request);
|
|
39
|
+
if (cached) {
|
|
40
|
+
logOnce(`hit:${request.url}`, 'cache hit:', new URL(request.url).pathname);
|
|
41
|
+
return cached;
|
|
12
42
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
caches.match(event.request).then(function (response) {
|
|
19
|
-
// 如果缓存中有匹配的资源,则返回缓存资源
|
|
20
|
-
if (response) {
|
|
21
|
-
return response;
|
|
22
|
-
}
|
|
23
|
-
// 如果没有匹配的资源,则尝试从网络请求
|
|
24
|
-
// 同时将获取的资源存入缓存
|
|
25
|
-
return fetch(event.request)
|
|
26
|
-
.then(function (networkResponse) {
|
|
27
|
-
console.log('%cCACHED: ' + url, 'color: #005CAF; padding: 2px;');
|
|
28
|
-
if (networkResponse.status === 206 && event.request.headers.has('range')) {
|
|
29
|
-
// 如果是部分响应且请求带有Range头,则创建新的请求,将完整响应返回给客户端
|
|
30
|
-
// eslint-disable-next-line max-nested-callbacks
|
|
31
|
-
return fetch(event.request.url).then(function (fullNetworkResponse) {
|
|
32
|
-
const headers = {};
|
|
33
|
-
for (let entry of fullNetworkResponse.headers.entries()) {
|
|
34
|
-
headers[entry[0]] = entry[1];
|
|
35
|
-
}
|
|
36
|
-
const fullResponse = new Response(fullNetworkResponse.body, {
|
|
37
|
-
status: fullNetworkResponse.status,
|
|
38
|
-
statusText: fullNetworkResponse.statusText,
|
|
39
|
-
headers: headers,
|
|
40
|
-
});
|
|
41
|
-
const clonedResponse = fullResponse.clone();
|
|
42
|
-
// eslint-disable-next-line max-nested-callbacks
|
|
43
|
-
caches.open('my-cache').then(function (cache) {
|
|
44
|
-
cache.put(event.request, clonedResponse);
|
|
45
|
-
});
|
|
46
|
-
return fullResponse;
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
const clonedResponse = networkResponse.clone();
|
|
50
|
-
// eslint-disable-next-line max-nested-callbacks
|
|
51
|
-
caches.open('my-cache').then(function (cache) {
|
|
52
|
-
cache.put(event.request, clonedResponse);
|
|
53
|
-
});
|
|
54
|
-
return networkResponse;
|
|
55
|
-
})
|
|
56
|
-
.catch(function (error) {
|
|
57
|
-
console.error('Fetching failed:', error);
|
|
58
|
-
throw error;
|
|
59
|
-
});
|
|
60
|
-
}),
|
|
61
|
-
);
|
|
43
|
+
|
|
44
|
+
const response = await fetch(request);
|
|
45
|
+
if (response.ok && response.status === 200) {
|
|
46
|
+
await cache.put(request, response.clone());
|
|
47
|
+
logOnce(`cache:${request.url}`, 'cached:', new URL(request.url).pathname);
|
|
62
48
|
}
|
|
49
|
+
return response;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
self.addEventListener('fetch', (event) => {
|
|
53
|
+
const { request } = event;
|
|
54
|
+
if (!isHashedBuildAssetRequest(request)) return;
|
|
55
|
+
|
|
56
|
+
event.respondWith(
|
|
57
|
+
cacheFirst(request).catch(() => {
|
|
58
|
+
return fetch(request);
|
|
59
|
+
}),
|
|
60
|
+
);
|
|
63
61
|
});
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "webgal-engine",
|
|
3
|
-
"version": "4.5.
|
|
3
|
+
"version": "4.5.20",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"dev": "vite --host --port 3000",
|
|
6
|
-
"build": "cross-env NODE_ENV=production tsc && vite build --base=./",
|
|
6
|
+
"build": "node scripts/update-engine-version.js && cross-env NODE_ENV=production tsc && vite build --base=./",
|
|
7
7
|
"preview": "vite preview",
|
|
8
8
|
"lint": "eslint src/** --fix",
|
|
9
9
|
"prepublishOnly": "npm run build"
|
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
"@icon-park/react": "^1.4.2",
|
|
14
14
|
"@reduxjs/toolkit": "^1.8.1",
|
|
15
15
|
"angular-expressions": "^1.4.3",
|
|
16
|
-
"axios": "^
|
|
16
|
+
"axios": "^1.13.5",
|
|
17
17
|
"cloudlogjs": "^1.0.9",
|
|
18
18
|
"gifuct-js": "^2.1.2",
|
|
19
19
|
"i18next": "^22.4.15",
|
|
20
20
|
"localforage": "^1.10.0",
|
|
21
|
-
"lodash": "^4.17.
|
|
21
|
+
"lodash": "^4.17.23",
|
|
22
22
|
"mitt": "^3.0.0",
|
|
23
23
|
"modern-css-reset": "^1.4.0",
|
|
24
24
|
"pixi-filters": "^4.2.0",
|
|
@@ -39,11 +39,11 @@
|
|
|
39
39
|
"@types/react": "^17.0.33",
|
|
40
40
|
"@types/react-dom": "^17.0.10",
|
|
41
41
|
"@types/uuid": "^8.3.4",
|
|
42
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
43
|
-
"@typescript-eslint/parser": "^
|
|
42
|
+
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
43
|
+
"@typescript-eslint/parser": "^8.0.0",
|
|
44
44
|
"@vitejs/plugin-react": "^4.0.4",
|
|
45
45
|
"cross-env": "^7.0.3",
|
|
46
|
-
"eslint": "^
|
|
46
|
+
"eslint": "^9.26.0",
|
|
47
47
|
"eslint-config-alloy": "^4.5.1",
|
|
48
48
|
"eslint-config-prettier": "^8.5.0",
|
|
49
49
|
"eslint-plugin-prettier": "^4.2.1",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"rollup-plugin-visualizer": "^5.6.0",
|
|
54
54
|
"typescript": "^4.5.4",
|
|
55
55
|
"unplugin-info": "^1.2.2",
|
|
56
|
-
"vite": "^4.
|
|
56
|
+
"vite": "^5.4.21",
|
|
57
57
|
"vite-plugin-compression": "^0.5.1"
|
|
58
58
|
}
|
|
59
59
|
}
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=Object.defineProperty;var c=(n,t,s)=>t in n?e(n,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):n[t]=s;var o=(n,t,s)=>(c(n,typeof t!="symbol"?t+"":t,s),s);class h{constructor(){o(this,"_content","")}push(t){this._content=t}pop(){const t=this._content;return this._content="",t}}class i{constructor(){o(this,"_content","")}push(t){this._content=t}pop(){const t=this._content;return this._content="",t}}const _=new h,p=new i;export{h as FigureConentsCash,i as VoiceConentsCash,_ as figureCash,p as voiceCash};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@charset "UTF-8";._Choose_Main_1kza1_1{position:absolute;width:100%;height:100%;display:flex;flex-flow:column;justify-content:center;align-items:center;z-index:13;background:rgba(0,0,0,.05)}._Choose_item_1kza1_13{font-family:WebgalUI,serif;cursor:pointer;min-width:50%;padding:.25em 1em;font-size:265%;color:#8e354a;text-align:center;border-radius:4px;border:3px solid rgba(0,0,0,0);box-shadow:0 0 25px #00000040;background:rgba(255,255,255,.65);margin:.25em 0;transition:background-color .5s,border .5s,font-weight .5s,box-shadow .5s}._Choose_item_1kza1_13:hover{background:rgba(255,255,255,.9);box-shadow:0 0 25px #00000059;border:3px solid #8E354A}._Choose_item_disabled_1kza1_34{font-family:WebgalUI,serif;cursor:not-allowed;min-width:50%;padding:.25em 1em;font-size:265%;color:#8e354a80;text-align:center;border-radius:4px;border:3px solid rgba(0,0,0,0);box-shadow:0 0 25px #00000040;background:rgba(255,255,255,.5);margin:.25em 0;transition:background-color .5s,border .5s,font-weight .5s,box-shadow .5s}._Choose_item_outer_1kza1_50{color:#000;min-width:50%}._Choose_Main_4xkm5_1{position:absolute;width:100%;height:100%;display:flex;flex-flow:column;justify-content:center;align-items:center;z-index:13;background:rgba(0,0,0,.05)}._Choose_item_4xkm5_13{cursor:pointer;min-width:50%;padding:.25em 1em;font-size:265%;color:#005caf;text-align:center;border-radius:4px;border:3px solid rgba(0,0,0,0);box-shadow:0 0 25px #00000040;background:rgba(255,255,255,.65);margin:.25em 0;transition:background-color .5s,border .5s,font-weight .5s,box-shadow .5s}._glabalDialog_container_inner_4xkm5_28{width:100%;height:100%;display:flex;justify-content:center;align-items:center;flex-flow:column;background:linear-gradient(to right,rgba(0,92,175,0) 0%,rgba(0,92,175,.5) 33%,rgba(0,92,175,.85) 50%,rgba(0,92,175,.5) 66%,rgba(0,92,175,0) 100%);padding:1em 5em 1.5em}._glabalDialog_container_4xkm5_28{color:#fff;width:100%;border-top:4px solid;border-bottom:4px solid;border-image:linear-gradient(to right,rgba(255,255,255,.05) 0%,rgba(255,255,255,.85) 33%,rgb(255,255,255) 50%,rgba(255,255,255,.85) 66%,rgba(255,255,255,.05) 100%) 1}._title_4xkm5_47{font-size:300%;letter-spacing:.05em;text-shadow:0 0 10px rgba(255,255,255,.5)}._Choose_item_4xkm5_13:hover{background:rgba(255,255,255,.9);box-shadow:0 0 25px #00000059;border:3px solid #005caf}._button_4xkm5_59{font-size:200%;padding:.15em 1em;margin:.2em 1em;cursor:pointer;transition:background-color .33s,color .33s,font-weight .33s,transform .33s;text-shadow:0 0 10px rgb(255,255,255);border-radius:5px}._button_4xkm5_59:hover{font-weight:700;color:#005caf;transform:scale(1.1);text-shadow:0 0 15px rgba(0,0,0,0);background:rgba(255,255,255,.85)}._FullScreenPerform_main_7er8a_2{position:absolute;width:100%;height:100%;top:0}._FullScreenPerform_element_7er8a_9{position:absolute;display:none;width:100%;height:100%;z-index:11}._fullScreen_video_7er8a_17{position:absolute;display:block;width:100%;height:100%;z-index:11}@keyframes _slideIn_7er8a_80{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _typing_7er8a_86{0%{width:0;height:0}to{width:100%;height:auto;border-right:1px solid}}@keyframes _blinkCursor_7er8a_1{50%{border-color:transparent}}@keyframes _pixelateAnimation_7er8a_1{0%{filter:none;opacity:0}50%{filter:blur(5px)}to{filter:none;opacity:1}}@keyframes _revealAnimation_7er8a_101{0%{opacity:0;clip-path:polygon(0% 0%,0% 0%,0% 100%,0% 100%)}to{opacity:1;clip-path:polygon(0% 0%,100% 0%,100% 100%,0% 100%)}}._fadeIn_7er8a_74{opacity:0;animation:_intro_showSoftly_7er8a_1 1.5s ease-out forwards;font-family:思源宋体,serif}._slideIn_7er8a_80{opacity:0;animation:_slideIn_7er8a_80 1.5s forwards;font-family:思源宋体,serif}._typingEffect_7er8a_86{display:block;overflow:hidden;white-space:pre-line;width:0;animation:_typing_7er8a_86 1.5s forwards,_blinkCursor_7er8a_1 1s infinite 1.5s;font-family:思源宋体,serif}._pixelateEffect_7er8a_95{opacity:0;animation:_pixelateAnimation_7er8a_1 3s forwards;font-family:思源宋体,serif}._revealAnimation_7er8a_101{opacity:0;animation:_revealAnimation_7er8a_101 3s forwards;font-family:思源宋体,serif}@keyframes _intro_showSoftly_7er8a_1{0%{opacity:0}to{opacity:1}}._videoContainer_7er8a_115{position:absolute;display:block;width:100%;height:100%;z-index:11;background:rgb(0,0,0)}._TextBox_EventHandler_1aepe_2{position:absolute;width:100%;height:100%;z-index:6;top:0}._TextBox_Container_1aepe_10{position:absolute;z-index:6;bottom:0;width:100%;animation:_showSoftly_1aepe_1 .7s ease-out forwards}._TextBox_main_1aepe_18{z-index:3;position:absolute;right:25px;min-height:330px;max-height:330px;background-blend-mode:darken;border-radius:165px 20px 20px 165px;bottom:20px;left:275px;font-weight:700;color:#fff;padding:1em 50px 70px 200px;box-sizing:border-box;display:flex;flex-flow:column;align-items:flex-start;letter-spacing:.2em;transition:left .33s}._TextBox_main_miniavatarOff_1aepe_39{left:25px}._TextBox_Background_1aepe_43{z-index:2;background:linear-gradient(rgb(245,247,250) 0%,rgb(189,198,222) 100%)}@keyframes _showSoftly_1aepe_1{0%{opacity:0}to{opacity:1}}._TextBox_textElement_start_1aepe_56{position:relative;animation:_TextDelayShow_1aepe_1 1s ease-out forwards;opacity:0;display:inline-flex;align-content:space-between}._outer_1aepe_64{position:absolute;left:0;top:0;white-space:nowrap;background-image:linear-gradient(#0B346E 0%,#141423 100%);background-clip:text;-webkit-background-clip:text;color:transparent;z-index:2;display:inline-block;vertical-align:middle}._inner_1aepe_78{white-space:nowrap;position:absolute;left:0;top:0;-webkit-text-stroke:.1em rgb(255,255,255);z-index:1;display:inline-block;vertical-align:middle}._zhanwei_1aepe_89{color:transparent;white-space:nowrap;display:inline-block;vertical-align:baseline;position:relative}._TextBox_textElement_Settled_1aepe_97{position:relative;opacity:1;display:inline-flex;align-content:space-between}._TextBox_showName_1aepe_104{font-size:85%;padding:0 2em;position:absolute;left:150px;top:-68px;height:80px;line-height:68px;border-radius:40px;z-index:3;border:4px solid rgba(255,255,255,0)}._TextBox_ShowName_Background_1aepe_117{z-index:2;background:rgb(11,52,110);border:4px solid rgba(255,255,255,.75);box-shadow:3px 3px 10px #64646480}@keyframes _TextDelayShow_1aepe_1{0%{opacity:0}to{opacity:1}}._miniAvatarContainer_1aepe_132{position:absolute;height:450px;width:450px;bottom:0;left:-250px;border-radius:100% 0 0 100%;overflow:hidden}._miniAvatarImg_1aepe_142{max-height:100%;max-width:100%;position:absolute;bottom:0;filter:drop-shadow(15px 0 3px rgba(0,0,0,.5))}._nameContainer_1aepe_150{position:absolute;left:2em;top:-3.5em}._outerName_1aepe_156{position:absolute;left:0;top:0;background:linear-gradient(150deg,rgb(255,255,255) 0%,rgb(255,255,255) 35%,rgb(165,212,228) 100%);background-clip:text;-webkit-background-clip:text;color:transparent;z-index:2}._innerName_1aepe_167{position:absolute;left:0;top:0;z-index:1}._text_1aepe_174{overflow:hidden}._trans_8uz61_2{height:100%;width:100%;background-image:linear-gradient(225deg,#a3bded 0%,#6991c7 100%);position:absolute;z-index:20}._langWrapper_8uz61_10{display:flex;justify-content:center;align-items:center;width:100%;height:100%;flex-flow:column}._lang_8uz61_10{width:100%;text-align:center;font-family:思源宋体,serif;color:transparent;font-size:300%;background:linear-gradient(150deg,rgb(255,255,255) 0%,rgb(255,255,255) 75%,#51A8DD 100%);-webkit-background-clip:text}._langSelect_8uz61_29{display:flex;gap:50px;padding:50px}._langSelectButton_8uz61_35{font-family:思源宋体,serif;cursor:pointer;font-size:200%;color:#fff;border-radius:4px;border:1px solid rgba(255,255,255,.8);padding:10px 50px;transition:color .33s,background-color .33s}._langSelectButton_8uz61_35:hover{background:white;color:#93a5cf}._MainStage_main_9enex_1{width:100%;height:100%;position:absolute;z-index:1;opacity:1;overflow:hidden}._MainStage_main_container_9enex_10{width:100%;height:100%;position:absolute;overflow:hidden}._MainStage_bgContainer_9enex_17{top:0;position:absolute;background-size:cover;width:100%;height:100%;z-index:1;animation:_MainStage_showBgSoftly_9enex_1 1s forwards ease-in-out}._MainStage_bgContainer_Settled_9enex_27{top:0;position:absolute;background-size:cover;width:100%;height:100%;animation:_MainStage_showBgSoftly_9enex_1 1ms forwards;z-index:1}._MainStage_oldBgContainer_9enex_37{background-size:cover;top:0;position:absolute;width:100%;height:100%;z-index:0;animation:_MainStage_oldBgFadeout_9enex_1 3s forwards}._MainStage_oldBgContainer_Settled_9enex_47{background-size:cover;top:0;position:absolute;width:100%;height:100%;opacity:0}@keyframes _MainStage_showBgSoftly_9enex_1{0%{opacity:.15}to{opacity:1}}@keyframes _MainStage_oldBgFadeout_9enex_1{0%{opacity:1}to{opacity:0}}._pixiContainer_9enex_72{position:absolute;z-index:5}._chooseContainer_9enex_77{z-index:8}._main_rdjpk_1{position:absolute;bottom:20px;z-index:9;display:flex;flex-flow:row;justify-content:center;align-items:center;height:70px;right:20px;border-radius:35px;padding:.15em 1.75em;font-size:80%}._button_rdjpk_16{position:relative;top:2px;padding:0;filter:drop-shadow(1px 1px 5px rgb(0,0,0))}._button_text_rdjpk_23{position:relative;bottom:8px;color:#fff;text-shadow:1px 1px 5px rgb(0,0,0);padding-left:3px}._button_on_rdjpk_31{height:100%;display:inline-block;font-size:150%;padding:.25em .3em 0 .15em;transition:background-color .5s;background:rgba(255,255,255,.3);border-radius:4px;margin:0 .1em}._singleButton_rdjpk_42{height:100%;display:inline-block;color:#fff;font-size:150%;padding:.3em .3em 0 .15em;transition:background-color .5s;cursor:pointer;border-radius:4px;margin:0 .1em;position:relative}._singleButton_rdjpk_42:hover,._singleButton_active_rdjpk_55{background-color:#ffffff4d}._fastSlPreview_rdjpk_59{position:absolute;top:-250px;right:0;background:linear-gradient(315deg,rgba(253,251,251,.9) 0%,rgba(235,237,238,.85) 100%);width:900px;height:230px;color:#005caf;border-radius:5px;display:none;animation:_fastSlEnter_rdjpk_1 .33s;transition:opacity .33s}._fastsave_rdjpk_73:hover ._fastSPreview_rdjpk_73,._fastload_rdjpk_77:hover ._fastLPreview_rdjpk_77{display:block}@keyframes _fastSlEnter_rdjpk_1{0%{opacity:0}to{opacity:1}}._slPreviewMain_rdjpk_89{padding:.5em;display:flex;box-sizing:border-box;height:100%;width:100%}._imgContainer_rdjpk_97{display:flex;overflow:hidden;border-radius:5px;flex-shrink:0;height:100%}._textContainer_rdjpk_105{overflow:hidden;padding:0 0 0 .5em}._TextBox_EventHandler_449dq_2{position:absolute;width:100%;height:100%;z-index:6;top:0}._TextBox_main_449dq_10{font-family:思源宋体,serif;font-style:italic;position:absolute;z-index:6;width:100%;height:12%;background-color:#000;bottom:0;color:#fff;box-sizing:border-box;overflow:hidden;display:flex;flex-flow:column;align-items:center;animation:_showSoftly_449dq_1 .7s ease-out forwards;letter-spacing:.2em;justify-content:center}@keyframes _showSoftly_449dq_1{0%{opacity:0}to{opacity:1}}._TextBox_textElement_449dq_38{opacity:0;animation:_showSoftly_449dq_1 1s forwards}._TextBox_textElement_start_449dq_43{animation:_TextDelayShow_449dq_1 .7s ease-out forwards;opacity:0}._TextBox_textElement_Settled_449dq_48{opacity:1}._TextBox_showName_449dq_52{font-size:85%;border-bottom:2px solid rgba(255,255,255,.3);min-width:50%;padding:0 .2em .2em .3em;margin:0 0 .2em}@keyframes _TextDelayShow_449dq_1{0%{opacity:0}to{opacity:1}}._miniAvatarContainer_449dq_68{position:absolute;height:80%;width:17%;bottom:0;left:.5em}._miniAvatarImg_449dq_76{max-height:100%;max-width:100%;position:absolute;bottom:0}._Backlog_main_zwyao_2{font-family:思源宋体,serif;position:absolute;top:0;width:100%;height:100%;z-index:10;background:rgba(0,0,0,.7);padding:2em 0;animation:_backlog_soft_in_zwyao_1 .7s ease-out forwards;box-sizing:border-box}._Backlog_main_out_zwyao_15{font-family:思源宋体,serif;position:absolute;top:0;width:100%;height:100%;z-index:10;background:rgba(0,0,0,.7);padding:2em 0;animation:_backlog_soft_out_zwyao_1 .7s ease-out forwards;box-sizing:border-box}._Backlog_main_out_IndexHide_zwyao_28{z-index:-10}._Backlog_main_DisableScroll_zwyao_32{overflow:hidden!important}._backlog_top_zwyao_36{padding:0 0 0 1em;display:flex;height:10%}._backlog_top_icon_zwyao_42{padding:.6em .6em 0;border-radius:1000px;transform:translateY(-13px);cursor:pointer}._backlog_top_icon_zwyao_42:hover{background:rgba(255,255,255,.25);animation:_backlog_icon_softin_zwyao_1 .25s ease-out forwards}@keyframes _backlog_icon_softin_zwyao_1{0%{background:rgba(255,255,255,0)}to{background:rgba(255,255,255,.25)}}._backlog_title_zwyao_62{height:100%;line-height:100%;font-size:360%;font-weight:700;color:transparent;background:linear-gradient(150deg,rgb(255,255,255) 0%,rgb(255,255,255) 35%,rgb(165,212,228) 100%);-webkit-background-clip:text}._backlog_content_zwyao_72{position:absolute;height:80%;padding:1em 10em;overflow:auto;display:flex;flex-flow:column-reverse;font-weight:400;width:100%;box-sizing:border-box}._backlog_item_zwyao_84{display:flex;color:#fff;font-size:165%;opacity:0;animation:_backlog_item_in_zwyao_1 .5s ease-out forwards;margin:1.25em 0 0;width:100%}._backlog_item_out_zwyao_94{display:flex;color:#fff;font-size:165%;opacity:0;animation:_backlog_item_out_zwyao_94 .5s ease-out forwards;margin:1.25em 0 0;width:100%}._backlog_func_area_zwyao_104{display:flex;flex-flow:row;align-items:flex-start;width:30%;max-width:30%;min-width:30%}._backlog_item_content_name_zwyao_113{font-weight:700;color:transparent;background:linear-gradient(150deg,rgb(255,255,255) 0%,rgb(255,255,255) 35%,rgb(165,212,228) 100%);-webkit-background-clip:text;margin:0 0 0 auto;overflow-wrap:break-word;box-sizing:border-box;border-radius:7px;padding:.2em .5em;font-size:115%;width:50%;text-align:left;letter-spacing:.1em}._backlog_item_content_zwyao_113{font-size:115%;width:82.5%;box-sizing:border-box;padding:.2em 0 0 1em;letter-spacing:.05em}._backlog_item_button_list_zwyao_137{display:flex;flex-flow:row;align-items:flex-start;margin:.35em 0 0}._backlog_item_button_element_zwyao_144{cursor:pointer;padding:.01em .75em 0;margin:0 0 0 .5em;background:rgba(255,255,255,.075);border-radius:7px;display:flex}._backlog_item_button_element_zwyao_144:hover{background:rgba(255,255,255,.25)}._backlog_item_content_text_zwyao_157{box-sizing:border-box}@keyframes _backlog_soft_in_zwyao_1{0%{opacity:0}to{opacity:1}}@keyframes _backlog_soft_out_zwyao_1{0%{opacity:1}to{opacity:0}}@keyframes _backlog_item_in_zwyao_1{0%{opacity:0;transform:scale(1.05) translate(-15px,10px) rotateX(-5deg) rotateY(-5deg)}to{opacity:1;transform:scale(1) translate(0)}}@keyframes _backlog_item_out_zwyao_94{0%{opacity:1;transform:scale(1) translate(0)}to{opacity:0;transform:scale(1.05) translate(-15px,10px) rotateX(-5deg) rotateY(-5deg);background-color:#fff3}}._introContainer_119k8_1{box-sizing:border-box;position:absolute;z-index:11;width:100%;height:100%;color:#fff;display:none}._GlobalDialog_main_101j8_2{height:100%;width:100%;position:absolute;z-index:20;background:rgba(15,37,64,.39);color:#fff;opacity:.5;animation:_showGlobalDialog_101j8_1 .33s forwards;display:flex;justify-content:center;align-items:center;font-family:思源宋体,serif}._glabalDialog_container_inner_101j8_17{width:100%;height:100%;display:flex;justify-content:center;align-items:center;flex-flow:column;background:linear-gradient(to right,rgba(0,92,175,0) 0%,rgba(0,92,175,.5) 33%,rgba(0,92,175,.85) 50%,rgba(0,92,175,.5) 66%,rgba(0,92,175,0) 100%);padding:1em 5em 1.5em}._glabalDialog_container_101j8_17{height:20%;width:100%;border-top:4px solid;border-bottom:4px solid;border-image:linear-gradient(to right,rgba(255,255,255,.05) 0%,rgba(255,255,255,.85) 33%,rgb(255,255,255) 50%,rgba(255,255,255,.85) 66%,rgba(255,255,255,.05) 100%) 1}._title_101j8_36{font-size:300%;text-shadow:0 0 10px rgba(255,255,255,.5)}._button_list_101j8_41{display:flex;margin:auto 0 0}._button_101j8_41{font-size:200%;padding:.15em 1em;margin:.2em 1em;cursor:pointer;transition:background-color .33s,color .33s,font-weight .33s,transform .33s;text-shadow:0 0 10px rgb(255,255,255);border-radius:5px}._button_101j8_41:hover{font-weight:700;color:#005caf;transform:scale(1.1);text-shadow:0 0 15px rgba(0,0,0,0);background:rgba(255,255,255,.85)}@keyframes _showGlobalDialog_101j8_1{0%{opacity:0}to{opacity:1}}._Save_Load_main_a3o8b_2{height:90%;width:100%;position:absolute;cursor:default}._Save_Load_top_a3o8b_9{height:10%;width:100%;display:flex;animation:_Elements_in_a3o8b_1 ease-out 1s forwards;justify-content:center}._Save_Load_title_a3o8b_17{font-family:思源宋体,serif;letter-spacing:.1em;width:auto;font-size:500%;min-width:350px;box-sizing:border-box;display:flex;justify-content:center;align-items:center;position:absolute;left:20px;top:0;z-index:-1;opacity:.2;transform:translateY(-10px)}._Save_title_text_a3o8b_35{font-weight:700;color:transparent;background:linear-gradient(135deg,#77428D 0%,#B28FCE 100%);text-shadow:2px 2px 15px rgba(255,255,255,.5);-webkit-background-clip:text}._Load_title_text_a3o8b_43{font-weight:700;color:transparent;background:linear-gradient(135deg,#005CAF 0%,#2EA9DF 100%);text-shadow:2px 2px 15px rgba(255,255,255,.5);-webkit-background-clip:text}._Save_Load_top_buttonList_a3o8b_51{height:100%;display:flex}._Save_Load_top_button_a3o8b_51{cursor:pointer;font-size:200%;width:2.05em;text-align:center;color:#00000080;box-sizing:border-box;display:flex;align-items:center;border-bottom:4px solid rgba(0,0,0,0);transition:background-color .7s,border-bottom-width .7s}._Save_Load_top_button_text_a3o8b_69{text-align:center;width:100%;padding:0 0 3px;border-left:2px solid rgba(0,0,0,.1)}._Save_Load_top_button_a3o8b_51:first-child>div{border-left:2px solid rgba(0,0,0,0)}._Save_Load_top_button_on_a3o8b_80{font-weight:700;border-bottom:4px solid #77428D;color:#77428d;background-color:#77428d0d}._Save_Load_top_button_a3o8b_51:hover{color:#77428d;font-weight:700;border-bottom:4px solid #77428D}._Load_top_button_on_a3o8b_93{font-weight:700;border-bottom:5px solid #005CAF;color:#005caf;background-color:#005caf1a}._Load_top_button_a3o8b_93:hover{color:#005caf;font-weight:700;border-bottom:5px solid #005CAF}._Save_Load_content_a3o8b_106{height:90%;width:100%;display:flex;flex-wrap:wrap;justify-content:space-evenly;align-items:center}._Save_Load_content_element_a3o8b_115{background:linear-gradient(-45deg,rgba(0,0,0,.05),rgba(0,0,0,.075));overflow:hidden;width:17.5%;height:45%;animation:_Elements_in_a3o8b_1 1s ease-out forwards,_Elements_in_transform_a3o8b_1 1s ease-out;opacity:0;border-radius:4px;transition:transform .25s,box-shadow .25s;cursor:pointer}._Save_Load_content_element_a3o8b_115:hover{transform:scale(1.05) translate(-.2em,-.2em)}._Save_Load_content_element_top_a3o8b_131{font-family:思源宋体,serif;width:100%;height:12%;display:flex}._Save_Load_content_element_top_index_a3o8b_138{color:#fff;text-align:center;font-size:155%;height:100%;width:20%;background-color:#b28fce}._Load_content_elememt_top_index_a3o8b_147{background-color:#51a8dd}._Save_Load_content_element_top_date_a3o8b_151{padding:.425em 0 0 .5em;background-color:#77428d;color:#fff;font-size:115%;height:100%;width:80%;font-family:WebgalUI,serif;letter-spacing:.1em}._Load_content_element_top_date_a3o8b_162{background-color:#005caf}._Save_Load_content_text_a3o8b_166{font-family:WebgalUI,sans-serif;letter-spacing:.05em;color:#373c38;background:linear-gradient(-45deg,rgba(255,255,255,.75) 0%,rgb(255,255,255) 100%);font-size:120%;height:40%;width:100%;display:flex;flex-flow:column;justify-content:flex-start;align-items:flex-start}._Save_Load_content_text_padding_a3o8b_180{padding:.2em .75em}._Save_Load_content_speaker_a3o8b_184{box-sizing:border-box;font-weight:700;color:#77428d;padding:.35em .8em .25em;width:100%;border-bottom:1px solid rgba(0,0,0,.1)}._Load_content_speaker_a3o8b_193{color:#005caf}._Load_content_text_a3o8b_197{background-color:#005cafbf}._Save_Load_content_miniRen_a3o8b_201{width:100%;height:48%;position:relative;background-size:cover}._Save_Load_content_miniRen_bg_a3o8b_208{background-size:cover;height:100%;width:100%;background-position:center}._Save_Load_content_miniRen_figure_a3o8b_215{height:100%;max-height:100%;max-width:100%;position:absolute;bottom:0}._Save_Load_content_miniRen_figLeft_a3o8b_223{bottom:0;left:0}._Save_Load_content_miniRen_figRight_a3o8b_228{bottom:0;right:0}@keyframes _Elements_in_a3o8b_1{0%{opacity:0}to{opacity:1}}@keyframes _Elements_in_transform_a3o8b_1{0%{transform:scale(1.05) translate(-25px,-20px) rotateY(15deg) rotateX(-15deg)}to{transform:scale(1) translate(0)}}._tag_yghix_2{position:absolute;top:2.5%;left:2.5%;color:#fff;z-index:10;padding:10px 10px 5px;border-radius:100px;transition:background-color .33s}._tag_yghix_2:hover{background-color:#ffffff80}._container_yghix_17{color:#fff;position:absolute;top:0;width:100%;height:100%;display:flex;flex-flow:column;background-color:#000000b3;z-index:9;padding:7em 5em 5em 10em;opacity:0;animation:_showContainer_yghix_1 1s forwards;transition:background-color .33s}._singleButton_yghix_33{padding:.5em 0}._button_text_yghix_37{font-family:思源宋体,serif;font-size:250%;letter-spacing:.07em;transition:text-shadow .33s}._button_text_yghix_37:hover{text-shadow:0 0 15px rgb(255,255,255)}@keyframes _showContainer_yghix_1{0%{opacity:0}to{opacity:1}}._Title_main_1p5oo_1{width:100%;height:100%;position:absolute;z-index:13}._Title_buttonList_1p5oo_8{display:flex;position:absolute;left:0;min-width:25%;height:100%;justify-content:center;align-items:flex-start;flex-flow:column;transition:background .75s;padding-left:120px}._Title_button_1p5oo_8{font-weight:700;text-align:center;flex:0 1 auto;cursor:pointer;padding:1em 2em;margin:20px 0;transition:all .33s;background:rgba(255,255,255,.15);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-radius:4px;transform:skew(-10deg);background:linear-gradient(to right,rgba(0,0,0,.3),rgba(0,0,0,.1))}._Title_button_1p5oo_8:hover{text-shadow:0 0 10px rgb(255,255,255);padding:1em 6em 1em 3em}._Title_button_text_1p5oo_41{font-size:165%;color:#fbfbfb;padding:0 .5em;letter-spacing:.2em}._Title_backup_background_1p5oo_48{width:100%;height:100%;position:absolute;z-index:13;background:linear-gradient(135deg,#fdfbfb 0%,#dcddde 100%)}._Title_button_disabled_1p5oo_56{cursor:not-allowed!important;opacity:.5}._Logo_main_1t2wi_1{width:100%;height:100%;position:absolute;top:0;left:0;right:0;bottom:0;animation:_change-img-anim_1t2wi_1 5s forwards;background-size:cover;z-index:14}@keyframes _change-img-anim_1t2wi_1{0%{opacity:0}35%{opacity:1}65%{opacity:1}99%{opacity:0}to{opacity:0;display:none}}._Logo_Back_1t2wi_32{width:100%;height:100%;position:absolute;top:0;left:0;right:0;opacity:1;bottom:0;background-size:cover;z-index:14;background:white}._animationActive_1t2wi_46{animation:_fadeout_1t2wi_1 5s forwards}@keyframes _fadeout_1t2wi_1{0%{opacity:1}65%{opacity:1}99%{opacity:0}to{opacity:0;display:none}}._extra_1mk91_2{width:100%;height:100%;position:absolute;top:0;left:0;z-index:14;background-image:linear-gradient(135deg,#93a5cf 0%,#e4efe9 100%);padding:2em;box-sizing:border-box}._extra_top_1mk91_14{padding:0;display:flex;height:10%}._extra_top_icon_1mk91_20{padding:.6em .6em 0;border-radius:1000px;transform:translateY(-13px);cursor:pointer}._extra_top_icon_1mk91_20:hover{background:rgba(255,255,255,.25);animation:_extra_icon_softin_1mk91_1 .25s ease-out forwards}@keyframes _extra_icon_softin_1mk91_1{0%{background:rgba(255,255,255,0)}to{background:rgba(0,0,0,.25)}}._extra_title_1mk91_40{font-family:思源宋体,serif;height:100%;line-height:100%;font-size:325%;font-weight:700;color:transparent;background:linear-gradient(150deg,rgb(255,255,255) 0%,rgb(255,255,255) 75%,#51A8DD 100%);-webkit-background-clip:text}._mainContainer_1mk91_51{box-sizing:border-box;padding:0 2em;display:flex;height:92%;flex-flow:column}._bgmContainer_1mk91_59{left:50px;right:50px;bottom:30px;position:absolute;overflow:auto;box-sizing:border-box;display:flex;flex-flow:column-reverse;align-content:center;background-image:linear-gradient(315deg,rgba(163,189,237,.95) 0%,rgba(105,145,199,.95) 100%);padding:1em 2em;border-radius:4px;transition:max-height .5s;z-index:2}._bgmListContainer_1mk91_76{z-index:2;bottom:0;width:100%;box-sizing:border-box;display:flex;flex:1;flex-flow:row;justify-content:flex-start;align-items:flex-start;margin:0 0 15px;flex-wrap:wrap;overflow:auto}._bgmPlayerMain_1mk91_91{display:flex}._bgmControlButton_1mk91_95{padding:.6em 1.2em .2em;margin:0 5px;box-sizing:border-box;border-radius:4px;border:1px solid rgba(255,255,255,.5);cursor:pointer;transition:background-color .33s,color .33s;flex-shrink:0}._bgmControlButton_1mk91_95:hover{box-shadow:0 0 10px 5px #ffffff59}._bgmName_1mk91_110{color:#fffc;font-family:思源宋体,serif;font-size:155%;margin:5px 5px 0 15px;overflow:hidden}._bgmElement_1mk91_118{font-family:思源宋体,serif;padding:.5em 1em;overflow:hidden;background-color:#0000001a;border-radius:5px;color:#fff;font-size:125%;margin:.5em 1em .5em .5em;transition:background-color 1s,color 1s;opacity:1;cursor:pointer;width:28%;flex-shrink:0}@keyframes _bgmElement_In_1mk91_1{0%{opacity:.95}to{opacity:1}}._bgmElement_1mk91_118:hover{background-color:#ffffffa6;color:#666;transition:background-color .5s,color .5s}._bgmElement_active_1mk91_148{background-color:#ffffffd9!important;color:#666}._cgMain_1mk91_153{width:100%;height:88%}._cgContainer_1mk91_158{width:100%;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:flex-start;align-content:flex-start;height:90%;box-sizing:border-box;padding:4em 0 0 2em}._cgElement_1mk91_170{width:22.5%;height:37.5%;background-color:#ffffffbf;box-shadow:0 0 15px 5px #00000059;box-sizing:border-box;padding:.75em;opacity:0;margin:1em;animation-delay:.1s;z-index:1;position:relative;cursor:pointer}._cgShowDiv_1mk91_185{height:8%;width:100%;display:flex;flex-flow:row;justify-content:center;align-items:flex-end}._cgShowDivWarpper_1mk91_194{display:flex;flex-flow:row;justify-content:flex-start;align-items:flex-end;border-radius:7px;padding:12px 15px;width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}._cgNav_1mk91_209{font-size:170%;background-color:#ffffff80;color:#666;padding:.12em 1em;margin:0 .25em;text-align:center;cursor:pointer;transition:background-color .5s,color .5s,font-weight .5s;border-radius:7px;flex-shrink:0}._cgNav_1mk91_209:first-child{margin-left:0}._cgNav_1mk91_209:last-child{margin-right:0}._cgNav_active_1mk91_230{background-color:#ffffffb3!important;color:#005caf}._cgNav_1mk91_209:hover{color:#005caf;background-color:#fff9}._showFullContainer_1mk91_240{z-index:13;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.1);display:flex;justify-content:center;align-items:center}._showFullCgMain_1mk91_253{cursor:pointer;width:80%;height:80%;box-sizing:border-box;padding:2em;background:rgba(255,255,255,.95);animation:_fullCgIn_1mk91_1 .5s ease-out forwards;opacity:0}@keyframes _fullCgIn_1mk91_1{0%{opacity:0;transform:scale(1.05) translate(-25px,-50px) rotateX(-10deg) rotateY(10deg)}to{opacity:1;transform:scale(1) translateZ(0)}}@keyframes cg_softIn_-5{0%{opacity:0;transform:scale(1.15) translate(-50px,-125px) rotateX(-25deg) rotateY(25deg)}to{opacity:1;transform:scale(1) translateZ(0)rotate(-5deg)}}@keyframes cg_softIn_-4{0%{opacity:0;transform:scale(1.15) translate(-50px,-125px) rotateX(-25deg) rotateY(25deg)}to{opacity:1;transform:scale(1) translateZ(0)rotate(-4deg)}}@keyframes cg_softIn_-3{0%{opacity:0;transform:scale(1.15) translate(-50px,-125px) rotateX(-25deg) rotateY(25deg)}to{opacity:1;transform:scale(1) translateZ(0)rotate(-3deg)}}@keyframes cg_softIn_-2{0%{opacity:0;transform:scale(1.15) translate(-50px,-125px) rotateX(-25deg) rotateY(25deg)}to{opacity:1;transform:scale(1) translateZ(0)rotate(-2deg)}}@keyframes cg_softIn_-1{0%{opacity:0;transform:scale(1.15) translate(-50px,-125px) rotateX(-25deg) rotateY(25deg)}to{opacity:1;transform:scale(1) translateZ(0)rotate(-1deg)}}@keyframes cg_softIn_0{0%{opacity:0;transform:scale(1.15) translate(-50px,-125px) rotateX(-25deg) rotateY(25deg)}to{opacity:1;transform:scale(1) translateZ(0)rotate(0)}}@keyframes cg_softIn_1{0%{opacity:0;transform:scale(1.15) translate(-50px,-125px) rotateX(-25deg) rotateY(25deg)}to{opacity:1;transform:scale(1) translateZ(0)rotate(1deg)}}@keyframes cg_softIn_2{0%{opacity:0;transform:scale(1.15) translate(-50px,-125px) rotateX(-25deg) rotateY(25deg)}to{opacity:1;transform:scale(1) translateZ(0)rotate(2deg)}}@keyframes cg_softIn_3{0%{opacity:0;transform:scale(1.15) translate(-50px,-125px) rotateX(-25deg) rotateY(25deg)}to{opacity:1;transform:scale(1) translateZ(0)rotate(3deg)}}@keyframes cg_softIn_4{0%{opacity:0;transform:scale(1.15) translate(-50px,-125px) rotateX(-25deg) rotateY(25deg)}to{opacity:1;transform:scale(1) translateZ(0)rotate(4deg)}}@keyframes cg_softIn_5{0%{opacity:0;transform:scale(1.15) translate(-50px,-125px) rotateX(-25deg) rotateY(25deg)}to{opacity:1;transform:scale(1) translateZ(0)rotate(5deg)}}._Menu_main_1a7i6_1{width:100%;height:100%;position:absolute;z-index:16;animation:_Menu_ShowSoftly_1a7i6_1 .5s forwards;background-image:linear-gradient(to top,#accbee 0%,#e7f0fd 100%)}._Menu_TagContent_1a7i6_10{width:100%;height:90%}@keyframes _Menu_ShowSoftly_1a7i6_1{0%{opacity:0}to{opacity:1}}._MenuPanel_main_1c9ky_1{width:100%;height:10%;display:flex;justify-content:center;align-items:center;padding:0 55px}._MenuPanel_button_1c9ky_10{padding:.25em 15px 0;margin-right:15px;display:flex;justify-content:center;font-size:200%;text-align:center;border-radius:6px;min-width:12.5%;cursor:pointer;color:#7b90a9;background:rgba(0,0,0,0);overflow:hidden;transition:text-shadow .7s,background-color .7s}._MenuPanel_button_1c9ky_10:last-child{margin-right:0}._MenuPanel_button_1c9ky_10:hover{background-color:#f5f6f726}._MenuPanel_button_1c9ky_10:last-child{border-right:none}._MenuPanel_button_icon_1c9ky_38{transform:translateY(.125em);padding:0 .15em 0 0;margin:0 .15em 0 0}._MenuPanel_button_hl_1c9ky_44{background-color:#f5f6f759!important}._Options_main_ili7y_2{position:absolute;cursor:default;height:90%;width:100%}._Options_top_ili7y_9{height:15%;width:100%;display:flex;align-items:flex-start}._Options_title_ili7y_16{font-family:思源宋体,serif;letter-spacing:.1em;font-size:225%;margin:.5em 0;padding:.2em 2em .2em 1.1em;box-sizing:border-box}._Option_title_text_ili7y_25{font-size:165%;font-weight:700;color:transparent;background:linear-gradient(to left,#227D51,rgb(81,110,65));-webkit-background-clip:text;animation:_Elements_in_ili7y_1 ease-out .7s forwards}._Option_title_text_shadow_ili7y_34{position:absolute;color:#0000;-webkit-text-stroke:3px rgb(0,0,0);z-index:-1}._Option_title_text_ts_ili7y_41{position:absolute;color:#0000;text-shadow:.04em .04em rgba(81,110,65,.9),.05em .05em rgba(81,110,65,.9),.06em .06em rgba(81,110,65,.9),.07em .07em rgba(81,110,65,.9);z-index:-1}._Options_main_content_ili7y_48{display:flex;flex:1;padding:0 0 0 3em;overflow:auto}._Options_main_content_half_ili7y_55{width:95%;display:flex;flex-flow:row;align-items:flex-start;align-content:flex-start;flex-wrap:wrap;padding:0 1em;position:relative}._About_title_text_ili7y_66{margin:.2em 1em;padding:.2em;position:absolute;top:10px;right:10px;animation:_Elements_in_ili7y_1 ease-out .7s forwards;cursor:pointer}._About_text_ili7y_76{font-weight:700;color:transparent;background:linear-gradient(to left,rgba(34,125,81,.65),rgba(81,110,65,.65));-webkit-background-clip:text;font-size:135%;text-decoration:underline}@keyframes _Elements_in_ili7y_1{0%{opacity:0;transform:scale(1.03) translate(-25px,-20px)}to{opacity:1;transform:scale(1) translate(0)}}._Options_page_container_ili7y_95{height:85%;display:flex;padding:1em 3.75em}._Options_button_list_ili7y_101{animation:_Elements_in_ili7y_1 ease-out .7s forwards}._Options_page_button_ili7y_105{font-family:思源宋体,serif;font-size:300%;font-weight:700;color:transparent;background:linear-gradient(to left,#227D51,rgb(81,110,65));opacity:.35;-webkit-background-clip:text;transition:color .33s,background-image .33s,opacity .33s;cursor:pointer}._Options_page_button_active_ili7y_117{background-image:linear-gradient(to left,#227D51,rgb(81,110,65));-webkit-background-clip:text;opacity:1}._Options_page_button_ili7y_105:hover{opacity:1}._NormalOption_ogzuv_1{margin:.2em 1em;padding:.2em;display:flex;flex-flow:column;align-items:flex-start;animation:_Elements_in_ogzuv_1 ease-out .7s forwards}._NormalOption_title_ogzuv_10{color:transparent;background:linear-gradient(to left,#227D51,rgb(81,110,65));-webkit-background-clip:text;font-size:200%;padding:.15em .5em .15em .1em;font-weight:700}._NormalOption_title_bef_ogzuv_19{font-weight:700;font-size:200%;content:attr(data-text);position:absolute;-webkit-text-stroke:3px rgb(0,0,0);z-index:-1;padding:.15em .5em .15em .1em}._NormalOption_title_sd_ogzuv_29{font-weight:700;color:#0000;font-size:200%;position:absolute;z-index:-1;padding:.15em .5em .15em .1em;text-shadow:.04em .04em rgba(81,110,65,.9),.05em .05em rgba(81,110,65,.9),.06em .06em rgba(81,110,65,.9),.07em .07em rgba(81,110,65,.9),.08em .08em rgba(81,110,65,.9),.09em .09em rgba(81,110,65,.9),.1em .1em rgba(81,110,65,.9)}._NormalOption_buttonList_ogzuv_39{padding:.5em 0;display:flex}@keyframes _Elements_in_ogzuv_1{0%{opacity:0;transform:scale(1.03) translate(-25px,-20px)}to{opacity:1;transform:scale(1) translate(0)}}._NormalButton_1qk3b_1{font-size:150%;box-sizing:border-box;padding:.2em 1em;background-color:#3232320d;margin:0 .4em 0 0;color:#a0aaa0;cursor:pointer;border-bottom:2px solid transparent}._NormalButton_1qk3b_1:hover{border-bottom:2px solid rgba(81,110,65,.9);color:#516e41e6;font-weight:700}._NormalButtonChecked_1qk3b_18{background-color:#516e4126;border-bottom:2px solid rgba(81,110,65,.9);color:#516e41e6;font-weight:700}._backButton_qbk37_1{display:flex;justify-content:center;align-items:center;width:50px;height:50px;background:rgba(0,0,0,.1);border-radius:4px;cursor:pointer}._backButton_qbk37_1:hover{background:rgba(0,0,0,.2)}._about_qbk37_16{padding:10px 0 0}._icon_qbk37_20{display:inline-flex}._title_qbk37_24{color:transparent;background:linear-gradient(to left,#227D51,rgb(81,110,65));-webkit-background-clip:text;font-size:200%;padding:.15em .5em .15em .1em;font-weight:700;margin-top:20px}._text_qbk37_34{color:#516e41;padding:0 0 0 10px;font-size:135%}._text_qbk37_34 a{color:#516e41}._contributor_qbk37_43{padding:0 10px 0 0}input[type=range]{-webkit-appearance:none;width:500px;height:50px;background:transparent;font-size:100%}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none}input[type=range]:focus{outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;height:375%;width:7.2%;border-radius:5em;background:#ffffff;cursor:pointer;margin-top:-14px;box-shadow:0 0 5px #00000080}input[type=range]::-webkit-slider-runnable-track{width:100%;height:20%;cursor:pointer;box-shadow:1px 1px 7px #0000004d;background:rgba(81,110,65,.9);border-radius:2em}input[type=range]:focus::-webkit-slider-runnable-track{background:rgba(81,110,65,.9)}input[type=range]::-moz-range-thumb{height:36px;width:7.2%;border-radius:5em;background:#ffffff;cursor:pointer;box-shadow:0 0 5px #00000080}input[type=range]::-moz-range-track{width:100%;height:20%;cursor:pointer;box-shadow:1px 1px 7px #0000004d;background:rgba(81,110,65,.9);border-radius:2em}.Option_WebGAL_slider{position:relative}.bubble{position:absolute;bottom:calc(100% + 10px);transform:translate(-50%);background:rgba(0,0,0,.85);color:#fff;padding:6px 12px;border-radius:6px;font-weight:700;white-space:nowrap;pointer-events:none;opacity:0;animation:bubbleFadeIn .2s ease-out forwards}.bubble:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border-width:6px;border-style:solid;border-color:rgba(0,0,0,.85) transparent transparent transparent}@keyframes bubbleFadeIn{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}._textPreviewMain_nolr3_1{z-index:1;padding:1em;min-height:480px;width:100%}._textbox_nolr3_8{width:100%;height:100%;position:relative}._yoozle_blue_1r48o_1{color:#4285f4}._yoozle_red_1r48o_5{color:#db4437}._yoozle_yellow_1r48o_9{color:#f4b400}._yoozle_green_1r48o_13{color:#0f9d58}._yoozle_e_rotate_1r48o_17{display:inline-block;transform:rotate(-12deg)}._yoozle_container_1r48o_22{display:flex;flex-direction:column;height:100%}._yoozle_title_1r48o_28{display:flex;flex-direction:column;align-items:center;padding-top:80px;font-family:arial,sans-serif;font-size:90px}._yoozle_search_1r48o_37{display:flex;flex-direction:column;align-items:center;padding:20px 10px}._yoozle_search_bar_1r48o_44{width:40%;line-height:32px;font-family:arial,sans-serif;font-size:18px}._yoozle_search_buttons_1r48o_51{padding-top:13px}._yoozle_button_1r48o_55{background-color:#f8f9fa;border:1px solid #f8f9fa;border-radius:4px;color:#3c4043;font-family:arial,sans-serif;font-size:14px;margin:11px 4px;padding:0 16px;line-height:27px;height:36px;min-width:54px;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none}._yoozle_button_1r48o_55:hover{box-shadow:0 1px 1px #0000001a;border:1px solid #dadce0;color:#202124}._yoozle_button_1r48o_55:focus{border:1px solid #4285f4;outline:none}._panic_overlay_main_1ysz4_1{margin:0;position:fixed;width:100%;height:100%;background-color:#fff;z-index:256}._devPanelMain_11x6i_1{font-size:150%;position:absolute;right:0;top:0;bottom:0;width:35%;background:rgba(255,255,255,.75);z-index:99;overflow:auto}._devPanelOpener_11x6i_13{position:absolute;right:5px;top:5px;background:rgba(255,255,255,.75);z-index:100;padding:3px 7px;border-radius:4px;cursor:pointer}@font-face{font-family:思源宋体;src:url(./SourceHanSerifCN-Regular-1e60cc2e.ttf) format("truetype")}@font-face{font-family:LXGW;src:url(./LXGWWenKai-Regular-9375313a.ttf) format("truetype")}@font-face{font-family:WebgalUI;src:url(./OPPOSans-R-ea925359.ttf) format("truetype")}a{transition:color 1s}a:link,a:visited,a:hover,a:active{color:#434343}body{background-color:#000;font-size:16px;margin:0;font-family:WebgalUI,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;-webkit-user-select:none;user-select:none}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{width:2560px;height:1440px;overflow:hidden;font-size:160%}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{box-shadow:0 0 10px #fff3;-webkit-box-shadow:0 0 10px rgba(255,255,255,.2);background:rgba(255,255,255,.2);border-radius:10px}::-webkit-scrollbar-thumb{border-radius:10px;background:rgba(255,255,255,.5);box-shadow:0 0 10px #00000026;-webkit-box-shadow:0 0 10px rgba(0,0,0,.15)}.App{height:100%;width:100%;background:rgb(0,0,0);overflow:hidden;perspective:0;-webkit-overflow-scrolling:auto}#pixiCanvas{z-index:5}@keyframes centerIn{0%{opacity:0;transform:scale(1)}to{opacity:1;transform:scale(1)}}@keyframes upIn{0%{opacity:0;transform:scale(1) translateY(3%)}to{opacity:1;transform:scale(1) translate(0)}}@keyframes leftIn{0%{opacity:0;transform:scale(1) translate(-3%)}to{opacity:1;transform:scale(1) translate(0)}}@keyframes rightIn{0%{opacity:0;transform:scale(1) translate(3%)}to{opacity:1;transform:scale(1) translate(0)}}@keyframes bg_down{0%{opacity:0;transform:scale(1.1) translateY(-3%)}to{opacity:1;transform:scale(1) translate(0)}}@keyframes bg_softIn{0%{opacity:0}to{opacity:1}}@keyframes hideBG{0%{opacity:1}to{opacity:0}}@keyframes shake{0%{transform:translate(0)}25%{transform:translate(-2%)}75%{transform:translate(2%)}to{transform:translate(0)}}@keyframes moveBaF{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes showSoftly{0%{opacity:0}to{opacity:1}}@keyframes elementFadeIn{0%{transform:translate(-15px,-20px) scale(1.03);opacity:0}to{opacity:1}}@keyframes controlButtonHover{0%{background-color:#0000;box-shadow:none}to{background-color:#ffffff40;box-shadow:5px 5px 15px #000000a6}}@keyframes controlButtonHoverBack{}@keyframes TitleButtonOnChoose{0%{transform:scale(1)}to{transform:scale(1.1)}}@keyframes TitleButtonNoneChoose{0%{transform:scale(1.1)}}@keyframes TitleModelHover{0%{background-color:#00000059}to{background-color:#000000a6}}@keyframes TitleModelNoneHover{0%{background-color:#000000a6}to{background-color:#00000059}}@keyframes bg_focusLeft{0%{transform:scale(1) translate(0);filter:blur(0)}to{transform:scale(1.15) translate(5%);filter:blur(1px)}}@keyframes bg_focusRight{0%{transform:scale(1) translate(0);filter:blur(0)}to{transform:scale(1.15) translate(-5%);filter:blur(1px)}}@keyframes bg_LtoR{0%{transform:scale(1.15) translate(5%);filter:blur(1px)}to{transform:scale(1.15) translate(-5%);filter:blur(1px)}}@keyframes bg_RtoL{0%{transform:scale(1.15) translate(-5%);filter:blur(1px)}to{transform:scale(1.15) translate(5%);filter:blur(1px)}}@keyframes bg_LtoC{0%{transform:scale(1.15) translate(5%);filter:blur(1px)}to{transform:scale(1) translate(0);filter:blur(0)}}@keyframes bg_RtoC{0%{transform:scale(1.15) translate(-5%);filter:blur(1px)}to{transform:scale(1) translate(0);filter:blur(0)}}@keyframes bg_focus{0%{transform:scale(1) translate(0);filter:blur(0)}to{transform:scale(1.15);filter:blur(1px)}}@keyframes bg_LtoF{0%{transform:scale(1.15) translate(5%);filter:blur(1px)}to{transform:scale(1.15);filter:blur(1px)}}@keyframes bg_RtoF{0%{transform:scale(1.15) translate(-5%);filter:blur(1px)}to{transform:scale(1.15);filter:blur(1px)}}@keyframes bg_FtoL{0%{transform:scale(1.15);filter:blur(1px)}to{transform:scale(1.15) translate(5%);filter:blur(1px)}}@keyframes bg_FtoR{0%{transform:scale(1.15);filter:blur(1px)}to{transform:scale(1.15) translate(-5%);filter:blur(1px)}}@keyframes bg_FtoC{0%{transform:scale(1.15);filter:blur(1px)}to{transform:scale(1) translate(0);filter:blur(0)}}*,*:before,*:after{box-sizing:border-box}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul[role=list],ol[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5}a:not([class]){text-decoration-skip-ink:auto}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
|
|
Binary file
|