webgal-engine 4.5.19 → 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.
Binary file
@@ -0,0 +1 @@
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:#0000000d}._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:#ffffffa6;margin:.25em 0;transition:background-color .5s,border .5s,font-weight .5s,box-shadow .5s}._Choose_item_1kza1_13:hover{background:#ffffffe6;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:#ffffff80;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:#0000000d}._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:#ffffffa6;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,#005caf00,#005caf80 33%,#005cafd9 50%,#005caf80 66%,#005caf00);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,#ffffff0d,#ffffffd9 33%,#fff 50%,#ffffffd9 66%,#ffffff0d) 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:#ffffffe6;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:#ffffffd9}._GlobalDialog_main_u8t2b_2{height:100%;width:100%;position:absolute;z-index:20;background:#0f254063;color:#fff;opacity:.5;animation:_showGlobalDialog_u8t2b_1 .33s forwards;display:flex;justify-content:center;align-items:center;font-family:资源圆体,serif}._glabalDialog_container_inner_u8t2b_17{width:100%;height:100%;display:flex;justify-content:center;align-items:center;flex-flow:column;background:linear-gradient(to right,#005caf00,#005caf80 33%,#005cafd9 50%,#005caf80 66%,#005caf00);padding:1em 5em 1.5em}._glabalDialog_container_u8t2b_17{height:20%;width:100%;border-top:4px solid;border-bottom:4px solid;border-image:linear-gradient(to right,#ffffff0d,#ffffffd9 33%,#fff 50%,#ffffffd9 66%,#ffffff0d) 1}._title_u8t2b_36{font-size:300%;text-shadow:0 0 10px rgba(255,255,255,.5)}._button_list_u8t2b_41{display:flex;margin:auto 0 0}._button_u8t2b_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_u8t2b_41:hover{font-weight:700;color:#005caf;transform:scale(1.1);text-shadow:0 0 15px rgba(0,0,0,0);background:#ffffffd9}@keyframes _showGlobalDialog_u8t2b_1{0%{opacity:0}to{opacity:1}}._FullScreenPerform_main_1jj6x_2{position:absolute;width:100%;height:100%;top:0}._FullScreenPerform_element_1jj6x_9{position:absolute;display:none;width:100%;height:100%;z-index:11}._fullScreen_video_1jj6x_17{position:absolute;display:block;width:100%;height:100%;z-index:11}@keyframes _slideIn_1jj6x_80{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _typing_1jj6x_86{0%{width:0;height:0}to{width:100%;height:auto;border-right:1px solid}}@keyframes _blinkCursor_1jj6x_1{50%{border-color:transparent}}@keyframes _pixelateAnimation_1jj6x_1{0%{filter:none;opacity:0}50%{filter:blur(5px)}to{filter:none;opacity:1}}@keyframes _revealAnimation_1jj6x_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_1jj6x_74{opacity:0;animation:_intro_showSoftly_1jj6x_1 1.5s ease-out forwards;font-family:资源圆体,serif}._slideIn_1jj6x_80{opacity:0;animation:_slideIn_1jj6x_80 1.5s forwards;font-family:资源圆体,serif}._typingEffect_1jj6x_86{display:block;overflow:hidden;white-space:pre-line;width:0;animation:_typing_1jj6x_86 1.5s forwards,_blinkCursor_1jj6x_1 1s infinite 1.5s;font-family:资源圆体,serif}._pixelateEffect_1jj6x_95{opacity:0;animation:_pixelateAnimation_1jj6x_1 3s forwards;font-family:资源圆体,serif}._revealAnimation_1jj6x_101{opacity:0;animation:_revealAnimation_1jj6x_101 3s forwards;font-family:资源圆体,serif}@keyframes _intro_showSoftly_1jj6x_1{0%{opacity:0}to{opacity:1}}._videoContainer_1jj6x_115{position:absolute;display:block;width:100%;height:100%;z-index:11;background:#000}._TextBox_EventHandler_ix0hc_2{position:absolute;width:100%;height:100%;z-index:6;top:0}._TextBox_Container_ix0hc_10{position:absolute;z-index:6;bottom:0;width:100%;animation:_showSoftly_ix0hc_1 .7s ease-out forwards}._TextBox_main_ix0hc_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_ix0hc_39{left:25px}._TextBox_Background_ix0hc_43{z-index:2;background:linear-gradient(#f5f7fa,#bdc6de)}@keyframes _showSoftly_ix0hc_1{0%{opacity:0}to{opacity:1}}._TextBox_textElement_start_ix0hc_56{position:relative;animation:_TextDelayShow_ix0hc_1 1s ease-out forwards;opacity:0;display:inline-flex;align-content:space-between}._outer_ix0hc_64{position:absolute;left:0;top:0;white-space:nowrap;background-image:linear-gradient(#0b346e,#141423);background-clip:text;-webkit-background-clip:text;color:transparent;z-index:2;display:inline-block;vertical-align:middle}._inner_ix0hc_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_ix0hc_89{color:transparent;white-space:nowrap;display:inline-block;vertical-align:baseline;position:relative}._TextBox_textElement_Settled_ix0hc_97{position:relative;opacity:1;display:inline-flex;align-content:space-between}._TextBox_showName_ix0hc_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_ix0hc_117{z-index:2;background:#0b346e;border:4px solid rgba(255,255,255,.75);box-shadow:3px 3px 10px #64646480}@keyframes _TextDelayShow_ix0hc_1{0%{opacity:0}to{opacity:1}}._miniAvatarContainer_ix0hc_132{position:absolute;height:450px;width:450px;bottom:0;left:-250px;border-radius:100% 0 0 100%;overflow:hidden}._miniAvatarImg_ix0hc_142{max-height:100%;max-width:100%;position:absolute;bottom:0;filter:drop-shadow(15px 0 3px rgba(0,0,0,.5))}._nameContainer_ix0hc_150{position:absolute;left:2em;top:-3.5em}._outerName_ix0hc_156{position:absolute;left:0;top:0;background:linear-gradient(150deg,#fff,#fff 35%,#a5d4e4);background-clip:text;-webkit-background-clip:text;color:transparent;z-index:2}._innerName_ix0hc_167{position:absolute;left:0;top:0;z-index:1}._text_ix0hc_174{overflow:hidden}._read_ix0hc_178{color:silver}._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:#ffffff4d;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,#fdfbfbe6,#ebedeed9);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}._trans_ny6ov_2{height:100%;width:100%;background-image:linear-gradient(225deg,#a3bded,#6991c7);position:absolute;z-index:20}._langWrapper_ny6ov_10{display:flex;justify-content:center;align-items:center;width:100%;height:100%;flex-flow:column}._lang_ny6ov_10{width:100%;text-align:center;font-family:资源圆体,serif;color:transparent;font-size:300%;background:linear-gradient(150deg,#fff,#fff 75%,#51a8dd);-webkit-background-clip:text}._langSelect_ny6ov_29{display:flex;gap:50px;padding:50px}._langSelectButton_ny6ov_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_ny6ov_35:hover{background:#fff;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}._TextBox_EventHandler_1a401_2{position:absolute;width:100%;height:100%;z-index:6;top:0}._TextBox_main_1a401_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_1a401_1 .7s ease-out forwards;letter-spacing:.2em;justify-content:center}@keyframes _showSoftly_1a401_1{0%{opacity:0}to{opacity:1}}._TextBox_textElement_1a401_38{opacity:0;animation:_showSoftly_1a401_1 1s forwards}._TextBox_textElement_start_1a401_43{animation:_TextDelayShow_1a401_1 .7s ease-out forwards;opacity:0}._TextBox_textElement_Settled_1a401_48{opacity:1}._TextBox_showName_1a401_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_1a401_1{0%{opacity:0}to{opacity:1}}._miniAvatarContainer_1a401_68{position:absolute;height:80%;width:17%;bottom:0;left:.5em}._miniAvatarImg_1a401_76{max-height:100%;max-width:100%;position:absolute;bottom:0}._Backlog_main_1mift_2{font-family:思源宋体,serif;position:absolute;top:0;width:100%;height:100%;z-index:10;background:#000000b3;padding:2em 0;animation:_backlog_soft_in_1mift_1 .7s ease-out forwards;box-sizing:border-box}._Backlog_main_out_1mift_15{font-family:思源宋体,serif;position:absolute;top:0;width:100%;height:100%;z-index:10;background:#000000b3;padding:2em 0;animation:_backlog_soft_out_1mift_1 .7s ease-out forwards;box-sizing:border-box}._Backlog_main_out_IndexHide_1mift_28{z-index:-10}._Backlog_main_DisableScroll_1mift_32{overflow:hidden!important}._backlog_top_1mift_36{padding:0 0 0 1em;display:flex;height:10%}._backlog_top_icon_1mift_42{padding:.6em .6em 0;border-radius:1000px;transform:translateY(-13px);cursor:pointer}._backlog_top_icon_1mift_42:hover{background:#ffffff40;animation:_backlog_icon_softin_1mift_1 .25s ease-out forwards}@keyframes _backlog_icon_softin_1mift_1{0%{background:#fff0}to{background:#ffffff40}}._backlog_title_1mift_62{height:100%;line-height:100%;font-size:360%;font-weight:700;color:transparent;background:linear-gradient(150deg,#fff,#fff 35%,#a5d4e4);-webkit-background-clip:text}._backlog_content_1mift_72{font-family:资源圆体,serif;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_1mift_85{display:flex;color:#fff;font-size:165%;opacity:0;animation:_backlog_item_in_1mift_1 .5s ease-out forwards;margin:1.25em 0 0;width:100%}._backlog_item_out_1mift_95{display:flex;color:#fff;font-size:165%;opacity:0;animation:_backlog_item_out_1mift_95 .5s ease-out forwards;margin:1.25em 0 0;width:100%}._backlog_func_area_1mift_105{display:flex;flex-flow:row;align-items:flex-start;width:30%;max-width:30%;min-width:30%}._backlog_item_content_name_1mift_114{font-weight:700;color:transparent;background:linear-gradient(150deg,#fff,#fff 35%,#a5d4e4);-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_1mift_114{font-size:115%;width:82.5%;box-sizing:border-box;padding:.2em 0 0 1em;letter-spacing:.05em}._backlog_item_button_list_1mift_138{display:flex;flex-flow:row;align-items:flex-start;margin:.35em 0 0}._backlog_item_button_element_1mift_145{cursor:pointer;padding:.01em .75em 0;margin:0 0 0 .5em;background:#ffffff13;border-radius:7px;display:flex}._backlog_item_button_element_1mift_145:hover{background:#ffffff40}._backlog_item_content_text_1mift_158{box-sizing:border-box}@keyframes _backlog_soft_in_1mift_1{0%{opacity:0}to{opacity:1}}@keyframes _backlog_soft_out_1mift_1{0%{opacity:1}to{opacity:0}}@keyframes _backlog_item_in_1mift_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_1mift_95{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}._Save_Load_main_1jtts_2{height:90%;width:100%;position:absolute;cursor:default}._Save_Load_top_1jtts_9{height:10%;width:100%;display:flex;animation:_Elements_in_1jtts_1 ease-out 1s forwards;justify-content:center}._Save_Load_title_1jtts_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_1jtts_35{font-weight:700;color:transparent;background:linear-gradient(135deg,#77428d,#b28fce);text-shadow:2px 2px 15px rgba(255,255,255,.5);-webkit-background-clip:text}._Load_title_text_1jtts_43{font-weight:700;color:transparent;background:linear-gradient(135deg,#005caf,#2ea9df);text-shadow:2px 2px 15px rgba(255,255,255,.5);-webkit-background-clip:text}._Save_Load_top_buttonList_1jtts_51{height:100%;display:flex}._Save_Load_top_button_1jtts_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_1jtts_69{text-align:center;width:100%;padding:0 0 3px;border-left:2px solid rgba(0,0,0,.1)}._Save_Load_top_button_1jtts_51:first-child>div{border-left:2px solid rgba(0,0,0,0)}._Save_Load_top_button_on_1jtts_80{font-weight:700;border-bottom:4px solid #77428D;color:#77428d;background-color:#77428d0d}._Save_Load_top_button_1jtts_51:hover{color:#77428d;font-weight:700;border-bottom:4px solid #77428D}._Load_top_button_on_1jtts_93{font-weight:700;border-bottom:5px solid #005CAF;color:#005caf;background-color:#005caf1a}._Load_top_button_1jtts_93:hover{color:#005caf;font-weight:700;border-bottom:5px solid #005CAF}._Save_Load_content_1jtts_106{height:90%;width:100%;display:flex;flex-wrap:wrap;justify-content:space-evenly;align-items:center}._Save_Load_content_element_1jtts_115{background:linear-gradient(-45deg,#0000000d,#00000013);overflow:hidden;width:17.5%;height:45%;animation:_Elements_in_1jtts_1 1s ease-out forwards,_Elements_in_transform_1jtts_1 1s ease-out;opacity:0;border-radius:4px;transition:transform .25s,box-shadow .25s;cursor:pointer}._Save_Load_content_element_1jtts_115:hover{transform:scale(1.05) translate(-.2em,-.2em)}._Save_Load_content_element_top_1jtts_131{font-family:资源圆体,serif;width:100%;height:12%;display:flex}._Save_Load_content_element_top_index_1jtts_138{color:#fff;text-align:center;font-size:155%;height:100%;width:20%;background-color:#b28fce}._Load_content_elememt_top_index_1jtts_147{background-color:#51a8dd}._Save_Load_content_element_top_date_1jtts_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_1jtts_162{background-color:#005caf}._Save_Load_content_text_1jtts_166{font-family:WebgalUI,sans-serif;letter-spacing:.05em;color:#373c38;background:linear-gradient(-45deg,#ffffffbf,#fff);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_1jtts_180{padding:.2em .75em}._Save_Load_content_speaker_1jtts_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_1jtts_193{color:#005caf}._Load_content_text_1jtts_197{background-color:#005cafbf}._Save_Load_content_miniRen_1jtts_201{width:100%;height:48%;position:relative;background-size:cover}._Save_Load_content_miniRen_bg_1jtts_208{background-size:cover;height:100%;width:100%;background-position:center}._Save_Load_content_miniRen_figure_1jtts_215{height:100%;max-height:100%;max-width:100%;position:absolute;bottom:0}._Save_Load_content_miniRen_figLeft_1jtts_223{bottom:0;left:0}._Save_Load_content_miniRen_figRight_1jtts_228{bottom:0;right:0}@keyframes _Elements_in_1jtts_1{0%{opacity:0}to{opacity:1}}@keyframes _Elements_in_transform_1jtts_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_1jbo0_1{width:100%;height:100%;position:absolute;z-index:13}._Title_buttonList_1jbo0_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_1jbo0_8{font-weight:700;text-align:center;flex:0 1 auto;cursor:pointer;padding:1em 2em;margin:20px 0;transition:all .33s;background:#ffffff26;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-radius:4px;transform:skew(-10deg);background:linear-gradient(to right,#0000004d,#0000001a)}._Title_button_1jbo0_8:hover{text-shadow:0 0 10px rgb(255,255,255);padding:1em 6em 1em 3em}._Title_button_text_1jbo0_41{font-size:165%;color:#fbfbfb;padding:0 .5em;letter-spacing:.2em}._Title_button_text_outer_1jbo0_48,._Title_button_text_inner_1jbo0_52{display:none}._Title_backup_background_1jbo0_56{width:100%;height:100%;position:absolute;z-index:13;background:linear-gradient(135deg,#fdfbfb,#dcddde)}._Title_button_disabled_1jbo0_64{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:#fff}._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_1thmc_2{width:100%;height:100%;position:absolute;top:0;left:0;z-index:14;background-image:linear-gradient(135deg,#93a5cf,#e4efe9);padding:2em;box-sizing:border-box}._extra_top_1thmc_14{padding:0;display:flex;height:10%}._extra_top_icon_1thmc_20{padding:.6em .6em 0;border-radius:1000px;transform:translateY(-13px);cursor:pointer}._extra_top_icon_1thmc_20:hover{background:#ffffff40;animation:_extra_icon_softin_1thmc_1 .25s ease-out forwards}@keyframes _extra_icon_softin_1thmc_1{0%{background:#fff0}to{background:#00000040}}._extra_title_1thmc_40{font-family:思源宋体,serif;height:100%;line-height:100%;font-size:325%;font-weight:700;color:transparent;background:linear-gradient(150deg,#fff,#fff 75%,#51a8dd);-webkit-background-clip:text}._mainContainer_1thmc_51{box-sizing:border-box;padding:0 2em;display:flex;height:92%;flex-flow:column}._bgmContainer_1thmc_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,#a3bdedf2,#6991c7f2);padding:1em 2em;border-radius:4px;transition:max-height .5s;z-index:2}._bgmListContainer_1thmc_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_1thmc_91{display:flex}._bgmControlButton_1thmc_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_1thmc_95:hover{box-shadow:0 0 10px 5px #ffffff59}._bgmName_1thmc_110{color:#fffc;font-family:资源圆体,serif;font-size:155%;margin:5px 5px 0 15px;overflow:hidden}._bgmElement_1thmc_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_1thmc_1{0%{opacity:.95}to{opacity:1}}._bgmElement_1thmc_118:hover{background-color:#ffffffa6;color:#666;transition:background-color .5s,color .5s}._bgmElement_active_1thmc_148{background-color:#ffffffd9!important;color:#666}._cgMain_1thmc_153{width:100%;height:88%}._cgContainer_1thmc_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_1thmc_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_1thmc_185{height:8%;width:100%;display:flex;flex-flow:row;justify-content:center;align-items:flex-end}._cgShowDivWarpper_1thmc_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_1thmc_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_1thmc_209:first-child{margin-left:0}._cgNav_1thmc_209:last-child{margin-right:0}._cgNav_active_1thmc_230{background-color:#ffffffb3!important;color:#005caf}._cgNav_1thmc_209:hover{color:#005caf;background-color:#fff9}._showFullContainer_1thmc_240{z-index:13;position:absolute;top:0;left:0;width:100%;height:100%;background:#0000001a;display:flex;justify-content:center;align-items:center}._showFullCgMain_1thmc_253{cursor:pointer;width:80%;height:80%;box-sizing:border-box;padding:2em;background:#fffffff2;animation:_fullCgIn_1thmc_1 .5s ease-out forwards;opacity:0}@keyframes _fullCgIn_1thmc_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,#e7f0fd)}._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:#0000;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,#516e41);-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,#227d51a6,#516e41a6);-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,#516e41);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,#516e41);-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,#516e41);-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:#0000001a;border-radius:4px;cursor:pointer}._backButton_qbk37_1:hover{background:#0003}._about_qbk37_16{padding:10px 0 0}._icon_qbk37_20{display:inline-flex}._title_qbk37_24{color:transparent;background:linear-gradient(to left,#227d51,#516e41);-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:#fff;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:#516e41e6;border-radius:2em}input[type=range]:focus::-webkit-slider-runnable-track{background:#516e41e6}input[type=range]::-moz-range-thumb{height:36px;width:7.2%;border-radius:5em;background:#fff;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:#516e41e6;border-radius:2em}.Option_WebGAL_slider{position:relative}.bubble{position:absolute;bottom:calc(100% + 10px);transform:translate(-50%);background:#000000d9;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:#ffffffbf;z-index:99;overflow:auto}._devPanelOpener_11x6i_13{position:absolute;right:5px;top:5px;background:#ffffffbf;z-index:100;padding:3px 7px;border-radius:4px;cursor:pointer}@font-face{font-family:资源圆体;src:url(./ResourceHanRoundedCN-Regular-C1HdCLVq.ttf) format("truetype")}@font-face{font-family:思源宋体;src:url(./SourceHanSerifCN-Regular-B_f-kQ2u.ttf) format("truetype")}@font-face{font-family:WebgalUI;src:url(./OPPOSans-R-tAcFw8I3.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:#fff3;border-radius:10px}::-webkit-scrollbar-thumb{border-radius:10px;background:#ffffff80;box-shadow:0 0 10px #00000026;-webkit-box-shadow:0 0 10px rgba(0,0,0,.15)}.App{height:100%;width:100%;background:#000;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}}
@@ -1,4 +1,4 @@
1
- import{C as De,O as Ae,A as Be,P as ke,M as ft,T as Re,E as kt,u as Rt,a as bt}from"./index-MdzLVmuf.js";var W=Math.pow,I=(s,t,e)=>new Promise((i,r)=>{var a=l=>{try{o(e.next(l))}catch(h){r(h)}},n=l=>{try{o(e.throw(l))}catch(h){r(h)}},o=l=>l.done?i(l.value):Promise.resolve(l.value).then(a,n);o((e=e.apply(s,t)).next())});const Zt=2,Kt=2;var ct;(s=>{s.supportMoreMaskDivisions=!0,s.setOpacityFromMotion=!1})(ct||(ct={}));var w;(s=>{s.LOG_LEVEL_VERBOSE=0,s.LOG_LEVEL_WARNING=1,s.LOG_LEVEL_ERROR=2,s.LOG_LEVEL_NONE=999,s.logLevel=s.LOG_LEVEL_WARNING,s.sound=!0,s.motionSync=!0,s.motionFadingDuration=500,s.idleMotionFadingDuration=2e3,s.expressionFadingDuration=500,s.preserveExpressionOnMotion=!0,s.cubism4=ct,s.legacyExpressionBlendMode=!1})(w||(w={}));const C={log(s,...t){w.logLevel<=w.LOG_LEVEL_VERBOSE&&console.log(`[${s}]`,...t)},warn(s,...t){w.logLevel<=w.LOG_LEVEL_WARNING&&console.warn(`[${s}]`,...t)},error(s,...t){w.logLevel<=w.LOG_LEVEL_ERROR&&console.error(`[${s}]`,...t)}};function yt(s,t,e){return s<t?t:s>e?e:s}function Oe(s,t){return Math.random()*(t-s)+s}function rt(s,t,e,i,r){const a=t[i];a!==null&&typeof a===s&&(e[r]=a)}function at(s,t,e,i,r){const a=t[i];Array.isArray(a)&&(e[r]=a.filter(n=>n!==null&&typeof n===s))}function me(s,t){t.forEach(e=>{Object.getOwnPropertyNames(e.prototype).forEach(i=>{i!=="constructor"&&Object.defineProperty(s.prototype,i,Object.getOwnPropertyDescriptor(e.prototype,i))})})}function Ue(s){let t=s.lastIndexOf("/");return t!=-1&&(s=s.slice(0,t)),t=s.lastIndexOf("/"),t!==-1&&(s=s.slice(t+1)),s}function Ve(s,t){const e=s.indexOf(t);e!==-1&&s.splice(e,1)}class Ot extends kt{constructor(t,e){super(),this.expressions=[],this.reserveExpressionIndex=-1,this.destroyed=!1,this.settings=t,this.tag=`ExpressionManager(${t.name})`}init(){this.defaultExpression=this.createExpression({},void 0),this.currentExpression=this.defaultExpression,this.stopAllExpressions()}loadExpression(t){return I(this,null,function*(){if(!this.definitions[t]){C.warn(this.tag,`Undefined expression at [${t}]`);return}if(this.expressions[t]===null){C.warn(this.tag,`Cannot set expression at [${t}] because it's already failed in loading.`);return}if(this.expressions[t])return this.expressions[t];const e=yield this._loadExpression(t);return this.expressions[t]=e,e})}_loadExpression(t){throw new Error("Not implemented.")}setRandomExpression(){return I(this,null,function*(){if(this.definitions.length){const t=[];for(let e=0;e<this.definitions.length;e++)this.expressions[e]!==null&&this.expressions[e]!==this.currentExpression&&e!==this.reserveExpressionIndex&&t.push(e);if(t.length){const e=Math.floor(Math.random()*t.length);return this.setExpression(e)}}return!1})}resetExpression(){this._setExpression(this.defaultExpression)}restoreExpression(){this._setExpression(this.currentExpression)}setExpression(t){return I(this,null,function*(){if(typeof t!="number"&&(t=this.getExpressionIndex(t)),!(t>-1&&t<this.definitions.length)||t===this.expressions.indexOf(this.currentExpression))return!1;this.reserveExpressionIndex=t;const e=yield this.loadExpression(t);return!e||this.reserveExpressionIndex!==t?!1:(this.reserveExpressionIndex=-1,this.currentExpression=e,this._setExpression(e),!0)})}update(t,e){return this.isFinished()?!1:this.updateParameters(t,e)}destroy(){this.destroyed=!0,this.emit("destroy");const t=this;t.definitions=void 0,t.expressions=void 0}}const Qt=.01,Ne=40/7.5,Ge=1/(.15*1e3);class ze{constructor(){this.targetX=0,this.targetY=0,this.x=0,this.y=0,this.vx=0,this.vy=0}focus(t,e,i=!1){this.targetX=yt(t,-1,1),this.targetY=yt(e,-1,1),i&&(this.x=this.targetX,this.y=this.targetY)}update(t){const e=this.targetX-this.x,i=this.targetY-this.y;if(Math.abs(e)<Qt&&Math.abs(i)<Qt)return;const r=Math.sqrt(W(e,2)+W(i,2)),a=Ne/(1e3/t);let n=a*(e/r)-this.vx,o=a*(i/r)-this.vy;const l=Math.sqrt(W(n,2)+W(o,2)),h=a*Ge*t;l>h&&(n*=h/l,o*=h/l),this.vx+=n,this.vy+=o;const u=Math.sqrt(W(this.vx,2)+W(this.vy,2)),c=.5*(Math.sqrt(W(h,2)+8*h*r)-h);u>c&&(this.vx*=c/u,this.vy*=c/u),this.x+=this.vx,this.y+=this.vy}}class vt{constructor(t){this.json=t;let e=t.url;if(typeof e!="string")throw new TypeError("The `url` field in settings JSON must be defined as a string.");this.url=e,this.name=Ue(this.url)}resolveURL(t){return Rt.resolve(this.url,t)}replaceFiles(t){this.moc=t(this.moc,"moc"),this.pose!==void 0&&(this.pose=t(this.pose,"pose")),this.physics!==void 0&&(this.physics=t(this.physics,"physics"));for(let e=0;e<this.textures.length;e++)this.textures[e]=t(this.textures[e],`textures[${e}]`)}getDefinedFiles(){const t=[];return this.replaceFiles(e=>(t.push(e),e)),t}validateFiles(t){const e=(a,n)=>{const o=this.resolveURL(a);if(!t.includes(o)){if(n)throw new Error(`File "${a}" is defined in settings, but doesn't exist in given files`);return!1}return!0};return[this.moc,...this.textures].forEach(a=>e(a,!0)),this.getDefinedFiles().filter(a=>e(a,!1))}}var Et=(s=>(s[s.NONE=0]="NONE",s[s.IDLE=1]="IDLE",s[s.NORMAL=2]="NORMAL",s[s.FORCE=3]="FORCE",s))(Et||{});class Xe{constructor(){this.debug=!1,this.currentPriority=0,this.reservePriority=0}reserve(t,e,i){if(i<=0)return C.log(this.tag,"Cannot start a motion with MotionPriority.NONE."),!1;if(t===this.currentGroup&&e===this.currentIndex)return C.log(this.tag,"Motion is already playing.",this.dump(t,e)),!1;if(t===this.reservedGroup&&e===this.reservedIndex||t===this.reservedIdleGroup&&e===this.reservedIdleIndex)return C.log(this.tag,"Motion is already reserved.",this.dump(t,e)),!1;if(i===1){if(this.currentPriority!==0)return C.log(this.tag,"Cannot start idle motion because another motion is playing.",this.dump(t,e)),!1;if(this.reservedIdleGroup!==void 0)return C.log(this.tag,"Cannot start idle motion because another idle motion has reserved.",this.dump(t,e)),!1;this.setReservedIdle(t,e)}else{if(i<3){if(i<=this.currentPriority)return C.log(this.tag,"Cannot start motion because another motion is playing as an equivalent or higher priority.",this.dump(t,e)),!1;if(i<=this.reservePriority)return C.log(this.tag,"Cannot start motion because another motion has reserved as an equivalent or higher priority.",this.dump(t,e)),!1}this.setReserved(t,e,i)}return!0}start(t,e,i,r){if(r===1){if(this.setReservedIdle(void 0,void 0),this.currentPriority!==0)return C.log(this.tag,"Cannot start idle motion because another motion is playing.",this.dump(e,i)),!1}else{if(e!==this.reservedGroup||i!==this.reservedIndex)return C.log(this.tag,"Cannot start motion because another motion has taken the place.",this.dump(e,i)),!1;this.setReserved(void 0,void 0,0)}return t?(this.setCurrent(e,i,r),!0):!1}complete(){this.setCurrent(void 0,void 0,0)}setCurrent(t,e,i){this.currentPriority=i,this.currentGroup=t,this.currentIndex=e}setReserved(t,e,i){this.reservePriority=i,this.reservedGroup=t,this.reservedIndex=e}setReservedIdle(t,e){this.reservedIdleGroup=t,this.reservedIdleIndex=e}isActive(t,e){return t===this.currentGroup&&e===this.currentIndex||t===this.reservedGroup&&e===this.reservedIndex||t===this.reservedIdleGroup&&e===this.reservedIdleIndex}reset(){this.setCurrent(void 0,void 0,0),this.setReserved(void 0,void 0,0),this.setReservedIdle(void 0,void 0)}shouldRequestIdleMotion(){return this.currentGroup===void 0&&this.reservedIdleGroup===void 0}shouldOverrideExpression(){return!w.preserveExpressionOnMotion&&this.currentPriority>1}dump(t,e){if(this.debug){const i=["currentPriority","reservePriority","currentGroup","currentIndex","reservedGroup","reservedIndex","reservedIdleGroup","reservedIdleIndex"];return`
1
+ import{C as De,O as Ae,A as Be,P as ke,M as ft,T as Re,E as kt,u as Rt,a as bt}from"./index-C-qIUAWt.js";var W=Math.pow,I=(s,t,e)=>new Promise((i,r)=>{var a=l=>{try{o(e.next(l))}catch(h){r(h)}},n=l=>{try{o(e.throw(l))}catch(h){r(h)}},o=l=>l.done?i(l.value):Promise.resolve(l.value).then(a,n);o((e=e.apply(s,t)).next())});const Zt=2,Kt=2;var ct;(s=>{s.supportMoreMaskDivisions=!0,s.setOpacityFromMotion=!1})(ct||(ct={}));var w;(s=>{s.LOG_LEVEL_VERBOSE=0,s.LOG_LEVEL_WARNING=1,s.LOG_LEVEL_ERROR=2,s.LOG_LEVEL_NONE=999,s.logLevel=s.LOG_LEVEL_WARNING,s.sound=!0,s.motionSync=!0,s.motionFadingDuration=500,s.idleMotionFadingDuration=2e3,s.expressionFadingDuration=500,s.preserveExpressionOnMotion=!0,s.cubism4=ct,s.legacyExpressionBlendMode=!1})(w||(w={}));const C={log(s,...t){w.logLevel<=w.LOG_LEVEL_VERBOSE&&console.log(`[${s}]`,...t)},warn(s,...t){w.logLevel<=w.LOG_LEVEL_WARNING&&console.warn(`[${s}]`,...t)},error(s,...t){w.logLevel<=w.LOG_LEVEL_ERROR&&console.error(`[${s}]`,...t)}};function yt(s,t,e){return s<t?t:s>e?e:s}function Oe(s,t){return Math.random()*(t-s)+s}function rt(s,t,e,i,r){const a=t[i];a!==null&&typeof a===s&&(e[r]=a)}function at(s,t,e,i,r){const a=t[i];Array.isArray(a)&&(e[r]=a.filter(n=>n!==null&&typeof n===s))}function me(s,t){t.forEach(e=>{Object.getOwnPropertyNames(e.prototype).forEach(i=>{i!=="constructor"&&Object.defineProperty(s.prototype,i,Object.getOwnPropertyDescriptor(e.prototype,i))})})}function Ue(s){let t=s.lastIndexOf("/");return t!=-1&&(s=s.slice(0,t)),t=s.lastIndexOf("/"),t!==-1&&(s=s.slice(t+1)),s}function Ve(s,t){const e=s.indexOf(t);e!==-1&&s.splice(e,1)}class Ot extends kt{constructor(t,e){super(),this.expressions=[],this.reserveExpressionIndex=-1,this.destroyed=!1,this.settings=t,this.tag=`ExpressionManager(${t.name})`}init(){this.defaultExpression=this.createExpression({},void 0),this.currentExpression=this.defaultExpression,this.stopAllExpressions()}loadExpression(t){return I(this,null,function*(){if(!this.definitions[t]){C.warn(this.tag,`Undefined expression at [${t}]`);return}if(this.expressions[t]===null){C.warn(this.tag,`Cannot set expression at [${t}] because it's already failed in loading.`);return}if(this.expressions[t])return this.expressions[t];const e=yield this._loadExpression(t);return this.expressions[t]=e,e})}_loadExpression(t){throw new Error("Not implemented.")}setRandomExpression(){return I(this,null,function*(){if(this.definitions.length){const t=[];for(let e=0;e<this.definitions.length;e++)this.expressions[e]!==null&&this.expressions[e]!==this.currentExpression&&e!==this.reserveExpressionIndex&&t.push(e);if(t.length){const e=Math.floor(Math.random()*t.length);return this.setExpression(e)}}return!1})}resetExpression(){this._setExpression(this.defaultExpression)}restoreExpression(){this._setExpression(this.currentExpression)}setExpression(t){return I(this,null,function*(){if(typeof t!="number"&&(t=this.getExpressionIndex(t)),!(t>-1&&t<this.definitions.length)||t===this.expressions.indexOf(this.currentExpression))return!1;this.reserveExpressionIndex=t;const e=yield this.loadExpression(t);return!e||this.reserveExpressionIndex!==t?!1:(this.reserveExpressionIndex=-1,this.currentExpression=e,this._setExpression(e),!0)})}update(t,e){return this.isFinished()?!1:this.updateParameters(t,e)}destroy(){this.destroyed=!0,this.emit("destroy");const t=this;t.definitions=void 0,t.expressions=void 0}}const Qt=.01,Ne=40/7.5,Ge=1/(.15*1e3);class ze{constructor(){this.targetX=0,this.targetY=0,this.x=0,this.y=0,this.vx=0,this.vy=0}focus(t,e,i=!1){this.targetX=yt(t,-1,1),this.targetY=yt(e,-1,1),i&&(this.x=this.targetX,this.y=this.targetY)}update(t){const e=this.targetX-this.x,i=this.targetY-this.y;if(Math.abs(e)<Qt&&Math.abs(i)<Qt)return;const r=Math.sqrt(W(e,2)+W(i,2)),a=Ne/(1e3/t);let n=a*(e/r)-this.vx,o=a*(i/r)-this.vy;const l=Math.sqrt(W(n,2)+W(o,2)),h=a*Ge*t;l>h&&(n*=h/l,o*=h/l),this.vx+=n,this.vy+=o;const u=Math.sqrt(W(this.vx,2)+W(this.vy,2)),c=.5*(Math.sqrt(W(h,2)+8*h*r)-h);u>c&&(this.vx*=c/u,this.vy*=c/u),this.x+=this.vx,this.y+=this.vy}}class vt{constructor(t){this.json=t;let e=t.url;if(typeof e!="string")throw new TypeError("The `url` field in settings JSON must be defined as a string.");this.url=e,this.name=Ue(this.url)}resolveURL(t){return Rt.resolve(this.url,t)}replaceFiles(t){this.moc=t(this.moc,"moc"),this.pose!==void 0&&(this.pose=t(this.pose,"pose")),this.physics!==void 0&&(this.physics=t(this.physics,"physics"));for(let e=0;e<this.textures.length;e++)this.textures[e]=t(this.textures[e],`textures[${e}]`)}getDefinedFiles(){const t=[];return this.replaceFiles(e=>(t.push(e),e)),t}validateFiles(t){const e=(a,n)=>{const o=this.resolveURL(a);if(!t.includes(o)){if(n)throw new Error(`File "${a}" is defined in settings, but doesn't exist in given files`);return!1}return!0};return[this.moc,...this.textures].forEach(a=>e(a,!0)),this.getDefinedFiles().filter(a=>e(a,!1))}}var Et=(s=>(s[s.NONE=0]="NONE",s[s.IDLE=1]="IDLE",s[s.NORMAL=2]="NORMAL",s[s.FORCE=3]="FORCE",s))(Et||{});class Xe{constructor(){this.debug=!1,this.currentPriority=0,this.reservePriority=0}reserve(t,e,i){if(i<=0)return C.log(this.tag,"Cannot start a motion with MotionPriority.NONE."),!1;if(t===this.currentGroup&&e===this.currentIndex)return C.log(this.tag,"Motion is already playing.",this.dump(t,e)),!1;if(t===this.reservedGroup&&e===this.reservedIndex||t===this.reservedIdleGroup&&e===this.reservedIdleIndex)return C.log(this.tag,"Motion is already reserved.",this.dump(t,e)),!1;if(i===1){if(this.currentPriority!==0)return C.log(this.tag,"Cannot start idle motion because another motion is playing.",this.dump(t,e)),!1;if(this.reservedIdleGroup!==void 0)return C.log(this.tag,"Cannot start idle motion because another idle motion has reserved.",this.dump(t,e)),!1;this.setReservedIdle(t,e)}else{if(i<3){if(i<=this.currentPriority)return C.log(this.tag,"Cannot start motion because another motion is playing as an equivalent or higher priority.",this.dump(t,e)),!1;if(i<=this.reservePriority)return C.log(this.tag,"Cannot start motion because another motion has reserved as an equivalent or higher priority.",this.dump(t,e)),!1}this.setReserved(t,e,i)}return!0}start(t,e,i,r){if(r===1){if(this.setReservedIdle(void 0,void 0),this.currentPriority!==0)return C.log(this.tag,"Cannot start idle motion because another motion is playing.",this.dump(e,i)),!1}else{if(e!==this.reservedGroup||i!==this.reservedIndex)return C.log(this.tag,"Cannot start motion because another motion has taken the place.",this.dump(e,i)),!1;this.setReserved(void 0,void 0,0)}return t?(this.setCurrent(e,i,r),!0):!1}complete(){this.setCurrent(void 0,void 0,0)}setCurrent(t,e,i){this.currentPriority=i,this.currentGroup=t,this.currentIndex=e}setReserved(t,e,i){this.reservePriority=i,this.reservedGroup=t,this.reservedIndex=e}setReservedIdle(t,e){this.reservedIdleGroup=t,this.reservedIdleIndex=e}isActive(t,e){return t===this.currentGroup&&e===this.currentIndex||t===this.reservedGroup&&e===this.reservedIndex||t===this.reservedIdleGroup&&e===this.reservedIdleIndex}reset(){this.setCurrent(void 0,void 0,0),this.setReserved(void 0,void 0,0),this.setReservedIdle(void 0,void 0)}shouldRequestIdleMotion(){return this.currentGroup===void 0&&this.reservedIdleGroup===void 0}shouldOverrideExpression(){return!w.preserveExpressionOnMotion&&this.currentPriority>1}dump(t,e){if(this.debug){const i=["currentPriority","reservePriority","currentGroup","currentIndex","reservedGroup","reservedIndex","reservedIdleGroup","reservedIdleIndex"];return`
2
2
  <Requested> group = "${t}", index = ${e}
3
3
  `+i.map(r=>"["+r+"] "+this[r]).join(`
4
4
  `)}return""}}const je="SoundManager",We=.5;class Z{static get volume(){return this._volume}static set volume(t){this._volume=(t>1?1:t<0?0:t)||0,this.audios.forEach(e=>e.volume=this._volume)}static add(t,e,i){const r=new Audio(t);return r.volume=this._volume,r.preload="auto",r.addEventListener("ended",()=>{this.dispose(r),e==null||e()}),r.addEventListener("error",a=>{this.dispose(r),C.warn(je,`Error occurred on "${t}"`,a.error),i==null||i(a.error)}),this.audios.push(r),r}static play(t){return new Promise((e,i)=>{var r;(r=t.play())==null||r.catch(a=>{t.dispatchEvent(new ErrorEvent("error",{error:a})),i(a)}),t.readyState===t.HAVE_ENOUGH_DATA?e():t.addEventListener("canplaythrough",e)})}static dispose(t){t.pause(),t.removeAttribute("src"),Ve(this.audios,t)}static destroy(){for(let t=this.audios.length-1;t>=0;t--)this.dispose(this.audios[t])}}Z.audios=[];Z._volume=We;class Mt extends kt{constructor(t,e){super(),this.motionGroups={},this.state=new Xe,this.playing=!1,this.destroyed=!1,this.settings=t,this.tag=`MotionManager(${t.name})`,this.state.tag=this.tag}init(t){t!=null&&t.idleMotionGroup&&(this.groups.idle=t.idleMotionGroup),this.setupMotions(t),this.stopAllMotions()}setupMotions(t){for(const i of Object.keys(this.definitions))this.motionGroups[i]=[];let e;switch(t==null?void 0:t.motionPreload){case"NONE":return;case"ALL":e=Object.keys(this.definitions);break;case"IDLE":default:e=[this.groups.idle];break}for(const i of e)if(this.definitions[i])for(let r=0;r<this.definitions[i].length;r++)this.loadMotion(i,r).then()}loadMotion(t,e){return I(this,null,function*(){var i;if(!((i=this.definitions[t])!=null&&i[e])){C.warn(this.tag,`Undefined motion at "${t}"[${e}]`);return}if(this.motionGroups[t][e]===null){C.warn(this.tag,`Cannot start motion at "${t}"[${e}] because it's already failed in loading.`);return}if(this.motionGroups[t][e])return this.motionGroups[t][e];const r=yield this._loadMotion(t,e);if(!this.destroyed)return this.motionGroups[t][e]=r??null,r})}_loadMotion(t,e){throw new Error("Not implemented.")}startMotion(t,e){return I(this,arguments,function*(i,r,a=Et.NORMAL){var n;if(!this.state.reserve(i,r,a))return!1;const o=(n=this.definitions[i])==null?void 0:n[r];if(!o)return!1;this.currentAudio&&Z.dispose(this.currentAudio);let l;if(w.sound){const u=this.getSoundFile(o);if(u)try{l=Z.add(this.settings.resolveURL(u),()=>this.currentAudio=void 0,()=>this.currentAudio=void 0),this.currentAudio=l}catch(c){C.warn(this.tag,"Failed to create audio",u,c)}}const h=yield this.loadMotion(i,r);if(l){const u=Z.play(l).catch(c=>C.warn(this.tag,"Failed to play audio",l.src,c));w.motionSync&&(yield u)}return this.state.start(h,i,r,a)?(C.log(this.tag,"Start motion:",this.getMotionName(o)),this.emit("motionStart",i,r,l),this.state.shouldOverrideExpression()&&this.expressionManager&&this.expressionManager.resetExpression(),this.playing=!0,this._startMotion(h),!0):(l&&(Z.dispose(l),this.currentAudio=void 0),!1)})}startRandomMotion(t,e){return I(this,null,function*(){const i=this.definitions[t];if(i!=null&&i.length){const r=[];for(let a=0;a<i.length;a++)this.motionGroups[t][a]!==null&&!this.state.isActive(t,a)&&r.push(a);if(r.length){const a=Math.floor(Math.random()*r.length);return this.startMotion(t,r[a],e)}}return!1})}stopAllMotions(){this._stopAllMotions(),this.state.reset(),this.currentAudio&&(Z.dispose(this.currentAudio),this.currentAudio=void 0)}update(t,e){var i;return this.isFinished()&&(this.playing&&(this.playing=!1,this.emit("motionFinish")),this.state.shouldOverrideExpression()&&((i=this.expressionManager)==null||i.restoreExpression()),this.state.complete(),this.state.shouldRequestIdleMotion()&&this.startRandomMotion(this.groups.idle,Et.IDLE)),this.updateParameters(t,e)}destroy(){var t;this.destroyed=!0,this.emit("destroy"),this.stopAllMotions(),(t=this.expressionManager)==null||t.destroy();const e=this;e.definitions=void 0,e.motionGroups=void 0}}const pe={blinkInterval:24*60*60*1e3,blinkIntervalRandom:1e3,closingDuration:100,closedDuration:50,openingDuration:150},Ye={x:0,y:0,width:0,height:0};class _e extends kt{constructor(){super(...arguments),this.focusController=new ze,this.originalWidth=0,this.originalHeight=0,this.width=0,this.height=0,this.localTransform=new ft,this.drawingMatrix=new ft,this.hitAreas={},this.textureFlipY=!1,this.viewport=[0,0,0,0],this.destroyed=!1}init(){this.setupLayout(),this.setupHitAreas()}setupLayout(){const t=this,e=this.getSize();t.originalWidth=e[0],t.originalHeight=e[1];const i=Object.assign({width:Zt,height:Kt},this.getLayout());this.localTransform.scale(i.width/Zt,i.height/Kt),t.width=this.originalWidth*this.localTransform.a,t.height=this.originalHeight*this.localTransform.d;const r=i.x!==void 0&&i.x-i.width/2||i.centerX!==void 0&&i.centerX||i.left!==void 0&&i.left-i.width/2||i.right!==void 0&&i.right+i.width/2||0,a=i.y!==void 0&&i.y-i.height/2||i.centerY!==void 0&&i.centerY||i.top!==void 0&&i.top-i.height/2||i.bottom!==void 0&&i.bottom+i.height/2||0;this.localTransform.translate(this.width*r,-this.height*a)}setupHitAreas(){const t=this.getHitAreaDefs().filter(e=>e.index>=0);for(const e of t)this.hitAreas[e.name]=e}hitTest(t,e){return Object.keys(this.hitAreas).filter(i=>this.isHit(i,t,e))}isHit(t,e,i){if(!this.hitAreas[t])return!1;const r=this.hitAreas[t].index,a=this.getDrawableBounds(r,Ye);return a.x<=e&&e<=a.x+a.width&&a.y<=i&&i<=a.y+a.height}getDrawableBounds(t,e){const i=this.getDrawableVertices(t);let r=i[0],a=i[0],n=i[1],o=i[1];for(let l=0;l<i.length;l+=2){const h=i[l],u=i[l+1];r=Math.min(h,r),a=Math.max(h,a),n=Math.min(u,n),o=Math.max(u,o)}return e??(e={}),e.x=r,e.y=n,e.width=a-r,e.height=o-n,e}updateTransform(t){this.drawingMatrix.copyFrom(t).append(this.localTransform)}update(t,e){this.focusController.update(t)}destroy(){this.destroyed=!0,this.emit("destroy"),this.motionManager.destroy(),this.motionManager=void 0}}const He="XHRLoader";class te extends Error{constructor(t,e,i,r=!1){super(t),this.url=e,this.status=i,this.aborted=r}}const E=class{static createXHR(s,t,e,i,r){const a=new XMLHttpRequest;if(E.allXhrSet.add(a),s){let n=E.xhrMap.get(s);n?n.add(a):(n=new Set([a]),E.xhrMap.set(s,n)),s.listeners("destroy").includes(E.cancelXHRs)||s.once("destroy",E.cancelXHRs)}return a.open("GET",t),a.responseType=e,a.onload=()=>{(a.status===200||a.status===0)&&a.response?i(a.response):a.onerror()},a.onerror=()=>{C.warn(He,`Failed to load resource as ${a.responseType} (Status ${a.status}): ${t}`),r(new te("Network error.",t,a.status))},a.onabort=()=>r(new te("Aborted.",t,a.status,!0)),a.onloadend=()=>{var n;E.allXhrSet.delete(a),s&&((n=E.xhrMap.get(s))==null||n.delete(a))},a}static cancelXHRs(){var s;(s=E.xhrMap.get(this))==null||s.forEach(t=>{t.abort(),E.allXhrSet.delete(t)}),E.xhrMap.delete(this)}static release(){E.allXhrSet.forEach(s=>s.abort()),E.allXhrSet.clear(),E.xhrMap=new WeakMap}};let Pt=E;Pt.xhrMap=new WeakMap;Pt.allXhrSet=new Set;Pt.loader=(s,t)=>new Promise((e,i)=>{E.createXHR(s.target,s.settings?s.settings.resolveURL(s.url):s.url,s.type,a=>{s.result=a,e()},i).send()});function fe(s,t){let e=-1;return i(0);function i(r,a){if(a)return Promise.reject(a);if(r<=e)return Promise.reject(new Error("next() called multiple times"));e=r;const n=s[r];if(!n)return Promise.resolve();try{return Promise.resolve(n(t,i.bind(null,r+1)))}catch(o){return Promise.reject(o)}}}class j{static load(t){return fe(this.middlewares,t).then(()=>t.result)}}j.middlewares=[Pt.loader];function qe(s,t={}){var e;const i={resourceOptions:{crossorigin:t.crossOrigin}};if(bt.fromURL)return bt.fromURL(s,i).catch(n=>{if(n instanceof Error)throw n;const o=new Error("Texture loading error");throw o.event=n,o});i.resourceOptions.autoLoad=!1;const r=bt.from(s,i);if(r.baseTexture.valid)return Promise.resolve(r);const a=r.baseTexture.resource;return(e=a._live2d_load)!=null||(a._live2d_load=new Promise((n,o)=>{const l=h=>{a.source.removeEventListener("error",l);const u=new Error("Texture loading error");u.event=h,o(u)};a.source.addEventListener("error",l),a.load().then(()=>n(r)).catch(l)})),a._live2d_load}const ee="Live2DFactory",ye=(s,t)=>I(void 0,null,function*(){if(typeof s.source=="string"){const e=yield j.load({url:s.source,type:"json",target:s.live2dModel});e.url=s.source,s.source=e,s.live2dModel.emit("settingsJSONLoaded",e)}return t()}),xe=(s,t)=>I(void 0,null,function*(){if(s.source instanceof vt)return s.settings=s.source,t();if(typeof s.source=="object"){const e=b.findRuntime(s.source);if(e){const i=e.createModelSettings(s.source);return s.settings=i,s.live2dModel.emit("settingsLoaded",i),t()}}throw new TypeError("Unknown settings format.")}),ve=(s,t)=>{if(s.settings){const e=b.findRuntime(s.settings);if(e)return e.ready().then(t)}return t()},Me=(s,t)=>I(void 0,null,function*(){yield t();const e=s.internalModel;if(e){const i=s.settings,r=b.findRuntime(i);if(r){const a=[];i.pose&&a.push(j.load({settings:i,url:i.pose,type:"json",target:e}).then(n=>{e.pose=r.createPose(e.coreModel,n),s.live2dModel.emit("poseLoaded",e.pose)}).catch(n=>{s.live2dModel.emit("poseLoadError",n),C.warn(ee,"Failed to load pose.",n)})),i.physics&&a.push(j.load({settings:i,url:i.physics,type:"json",target:e}).then(n=>{e.physics=r.createPhysics(e.coreModel,n),s.live2dModel.emit("physicsLoaded",e.physics)}).catch(n=>{s.live2dModel.emit("physicsLoadError",n),C.warn(ee,"Failed to load physics.",n)})),a.length&&(yield Promise.all(a))}}}),Pe=(s,t)=>I(void 0,null,function*(){if(s.settings){const e=s.live2dModel,i=s.settings.textures.map(r=>{const a=s.settings.resolveURL(r);return qe(a,{crossOrigin:s.options.crossOrigin})});if(yield t(),s.internalModel)e.internalModel=s.internalModel,e.emit("modelLoaded",s.internalModel);else throw new TypeError("Missing internal model.");e.textures=yield Promise.all(i),e.emit("textureLoaded",e.textures)}else throw new TypeError("Missing settings.")}),Ce=(s,t)=>I(void 0,null,function*(){const e=s.settings;if(e instanceof vt){const i=b.findRuntime(e);if(!i)throw new TypeError("Unknown model settings.");const r=yield j.load({settings:e,url:e.moc,type:"arraybuffer",target:s.live2dModel});if(!i.isValidMoc(r))throw new Error("Invalid moc data");const a=i.createCoreModel(r);return s.internalModel=i.createInternalModel(a,e,s.options),t()}throw new TypeError("Missing settings.")}),L=class{static registerRuntime(s){L.runtimes.push(s),L.runtimes.sort((t,e)=>e.version-t.version)}static findRuntime(s){for(const t of L.runtimes)if(t.test(s))return t}static setupLive2DModel(s,t,e){return I(this,null,function*(){const i=new Promise(n=>s.once("textureLoaded",n)),r=new Promise(n=>s.once("modelLoaded",n)),a=Promise.all([i,r]).then(()=>s.emit("ready"));yield fe(L.live2DModelMiddlewares,{live2dModel:s,source:t,options:e||{}}),yield a,s.emit("load")})}static loadMotion(s,t,e){var i,r;const a=n=>s.emit("motionLoadError",t,e,n);try{const n=(i=s.definitions[t])==null?void 0:i[e];if(!n)return Promise.resolve(void 0);s.listeners("destroy").includes(L.releaseTasks)||s.once("destroy",L.releaseTasks);let o=L.motionTasksMap.get(s);o||(o={},L.motionTasksMap.set(s,o));let l=o[t];l||(l=[],o[t]=l);const h=s.getMotionFile(n);return(r=l[e])!=null||(l[e]=j.load({url:h,settings:s.settings,type:s.motionDataType,target:s}).then(u=>{var c;const d=(c=L.motionTasksMap.get(s))==null?void 0:c[t];d&&delete d[e];const _=s.createMotion(u,t,n);return s.emit("motionLoaded",t,e,_),_}).catch(u=>{C.warn(s.tag,`Failed to load motion: ${h}
@@ -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-MdzLVmuf.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)});
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)});
package/dist/index.html CHANGED
@@ -136,8 +136,8 @@
136
136
  }
137
137
 
138
138
  </style>
139
- <script type="module" crossorigin src="./assets/index-MdzLVmuf.js"></script>
140
- <link rel="stylesheet" crossorigin href="./assets/index-CkOq6uhz.css">
139
+ <script type="module" crossorigin src="./assets/index-C-qIUAWt.js"></script>
140
+ <link rel="stylesheet" crossorigin href="./assets/index-KtfF1_Zy.css">
141
141
  </head>
142
142
  <body>
143
143
  <!-- 背景模糊 -->
@@ -322,16 +322,68 @@
322
322
  <script>
323
323
  (() => {
324
324
  const isIOS = window.__WEBGAL_DEVICE_INFO__?.isIOS ?? false;
325
- if ('serviceWorker' in navigator && !isIOS) {
326
- navigator.serviceWorker
327
- .register('./webgal-serviceworker.js')
328
- .then((reg) => {
329
- console.log('Registration succeeded. Scope is ' + reg.scope);
330
- })
331
- .catch((error) => {
332
- console.log('Registration failed with ' + error);
333
- });
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;
370
+ }
371
+ if (shouldBypassServiceWorker) {
372
+ clearWebGALServiceWorker();
373
+ return;
334
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
+ });
335
387
  })();
336
388
  </script>
337
389
  <!-- 首屏加载 -->
@@ -1,7 +1,7 @@
1
- const CACHE_NAME = 'webgal-critical-assets-v3';
2
- const GAME_PREFIX = '/game/';
3
- const CRITICAL_PATHS = ['/game/background/', '/game/figure/', '/game/bgm/', '/game/vocal/', '/game/video/'];
1
+ const CACHE_PREFIX = 'webgal-';
2
+ const CACHE_NAME = 'webgal-build-assets-v1';
4
3
  const LOG_PREFIX = '[WebGAL SW]';
4
+ const HASHED_BUILD_ASSET_RE = /(^|\/)assets\/[^/?#]+-[A-Za-z0-9_-]{8,}\.(?:js|css|ttf|woff|woff2)$/;
5
5
  const loggedKeys = new Set();
6
6
 
7
7
  function logOnce(key, ...args) {
@@ -20,48 +20,30 @@ self.addEventListener('activate', (event) => {
20
20
  event.waitUntil(
21
21
  (async () => {
22
22
  const keys = await caches.keys();
23
- await Promise.all(keys.filter((key) => key !== CACHE_NAME).map((key) => caches.delete(key)));
23
+ await Promise.all(keys.filter((key) => key.startsWith(CACHE_PREFIX) && key !== CACHE_NAME).map((key) => caches.delete(key)));
24
24
  await self.clients.claim();
25
25
  })(),
26
26
  );
27
27
  });
28
28
 
29
- function isCriticalGameRequest(request) {
29
+ function isHashedBuildAssetRequest(request) {
30
30
  if (request.method !== 'GET') return false;
31
31
  const url = new URL(request.url);
32
32
  if (url.origin !== self.location.origin) return false;
33
- if (!url.pathname.startsWith(GAME_PREFIX)) return false;
34
- return CRITICAL_PATHS.some((prefix) => url.pathname.startsWith(prefix));
33
+ return HASHED_BUILD_ASSET_RE.test(url.pathname);
35
34
  }
36
35
 
37
- // Stale-while-revalidate: return cached response immediately, then update cache in background.
38
- async function staleWhileRevalidate(request) {
36
+ async function cacheFirst(request) {
39
37
  const cache = await caches.open(CACHE_NAME);
40
- const cached = await cache.match(request.url);
41
-
42
- const fetchAndUpdate = async () => {
43
- try {
44
- const response = await fetch(request);
45
- if (response.ok) {
46
- await cache.put(request.url, response.clone());
47
- }
48
- return response;
49
- } catch (e) {
50
- return null;
51
- }
52
- };
53
-
38
+ const cached = await cache.match(request);
54
39
  if (cached) {
55
- logOnce(`hit:${request.url}`, 'cache hit (revalidating):', new URL(request.url).pathname);
56
- // Revalidate in background — don't await
57
- fetchAndUpdate();
40
+ logOnce(`hit:${request.url}`, 'cache hit:', new URL(request.url).pathname);
58
41
  return cached;
59
42
  }
60
43
 
61
- // No cache — must wait for network
62
44
  const response = await fetch(request);
63
- if (response.ok) {
64
- await cache.put(request.url, response.clone());
45
+ if (response.ok && response.status === 200) {
46
+ await cache.put(request, response.clone());
65
47
  logOnce(`cache:${request.url}`, 'cached:', new URL(request.url).pathname);
66
48
  }
67
49
  return response;
@@ -69,17 +51,10 @@ async function staleWhileRevalidate(request) {
69
51
 
70
52
  self.addEventListener('fetch', (event) => {
71
53
  const { request } = event;
72
- if (!isCriticalGameRequest(request)) return;
73
-
74
- // Audio/video range requests are passed through to avoid partial-content edge cases.
75
- if (request.headers.has('range')) {
76
- logOnce(`range:${request.url}`, 'range passthrough:', new URL(request.url).pathname);
77
- event.respondWith(fetch(request));
78
- return;
79
- }
54
+ if (!isHashedBuildAssetRequest(request)) return;
80
55
 
81
56
  event.respondWith(
82
- staleWhileRevalidate(request).catch(() => {
57
+ cacheFirst(request).catch(() => {
83
58
  return fetch(request);
84
59
  }),
85
60
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webgal-engine",
3
- "version": "4.5.19",
3
+ "version": "4.5.20",
4
4
  "scripts": {
5
5
  "dev": "vite --host --port 3000",
6
6
  "build": "node scripts/update-engine-version.js && cross-env NODE_ENV=production tsc && vite build --base=./",
@@ -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:#0000000d}._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:#ffffffa6;margin:.25em 0;transition:background-color .5s,border .5s,font-weight .5s,box-shadow .5s}._Choose_item_1kza1_13:hover{background:#ffffffe6;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:#ffffff80;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:#0000000d}._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:#ffffffa6;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,#005caf00,#005caf80 33%,#005cafd9 50%,#005caf80 66%,#005caf00);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,#ffffff0d,#ffffffd9 33%,#fff 50%,#ffffffd9 66%,#ffffff0d) 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:#ffffffe6;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:#ffffffd9}._GlobalDialog_main_u8t2b_2{height:100%;width:100%;position:absolute;z-index:20;background:#0f254063;color:#fff;opacity:.5;animation:_showGlobalDialog_u8t2b_1 .33s forwards;display:flex;justify-content:center;align-items:center;font-family:资源圆体,serif}._glabalDialog_container_inner_u8t2b_17{width:100%;height:100%;display:flex;justify-content:center;align-items:center;flex-flow:column;background:linear-gradient(to right,#005caf00,#005caf80 33%,#005cafd9 50%,#005caf80 66%,#005caf00);padding:1em 5em 1.5em}._glabalDialog_container_u8t2b_17{height:20%;width:100%;border-top:4px solid;border-bottom:4px solid;border-image:linear-gradient(to right,#ffffff0d,#ffffffd9 33%,#fff 50%,#ffffffd9 66%,#ffffff0d) 1}._title_u8t2b_36{font-size:300%;text-shadow:0 0 10px rgba(255,255,255,.5)}._button_list_u8t2b_41{display:flex;margin:auto 0 0}._button_u8t2b_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_u8t2b_41:hover{font-weight:700;color:#005caf;transform:scale(1.1);text-shadow:0 0 15px rgba(0,0,0,0);background:#ffffffd9}@keyframes _showGlobalDialog_u8t2b_1{0%{opacity:0}to{opacity:1}}._FullScreenPerform_main_1jj6x_2{position:absolute;width:100%;height:100%;top:0}._FullScreenPerform_element_1jj6x_9{position:absolute;display:none;width:100%;height:100%;z-index:11}._fullScreen_video_1jj6x_17{position:absolute;display:block;width:100%;height:100%;z-index:11}@keyframes _slideIn_1jj6x_80{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _typing_1jj6x_86{0%{width:0;height:0}to{width:100%;height:auto;border-right:1px solid}}@keyframes _blinkCursor_1jj6x_1{50%{border-color:transparent}}@keyframes _pixelateAnimation_1jj6x_1{0%{filter:none;opacity:0}50%{filter:blur(5px)}to{filter:none;opacity:1}}@keyframes _revealAnimation_1jj6x_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_1jj6x_74{opacity:0;animation:_intro_showSoftly_1jj6x_1 1.5s ease-out forwards;font-family:资源圆体,serif}._slideIn_1jj6x_80{opacity:0;animation:_slideIn_1jj6x_80 1.5s forwards;font-family:资源圆体,serif}._typingEffect_1jj6x_86{display:block;overflow:hidden;white-space:pre-line;width:0;animation:_typing_1jj6x_86 1.5s forwards,_blinkCursor_1jj6x_1 1s infinite 1.5s;font-family:资源圆体,serif}._pixelateEffect_1jj6x_95{opacity:0;animation:_pixelateAnimation_1jj6x_1 3s forwards;font-family:资源圆体,serif}._revealAnimation_1jj6x_101{opacity:0;animation:_revealAnimation_1jj6x_101 3s forwards;font-family:资源圆体,serif}@keyframes _intro_showSoftly_1jj6x_1{0%{opacity:0}to{opacity:1}}._videoContainer_1jj6x_115{position:absolute;display:block;width:100%;height:100%;z-index:11;background:#000}._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(#f5f7fa,#bdc6de)}@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,#141423);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:#0b346e;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,#fff,#fff 35%,#a5d4e4);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}._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:#ffffff4d;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,#fdfbfbe6,#ebedeed9);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}._trans_ny6ov_2{height:100%;width:100%;background-image:linear-gradient(225deg,#a3bded,#6991c7);position:absolute;z-index:20}._langWrapper_ny6ov_10{display:flex;justify-content:center;align-items:center;width:100%;height:100%;flex-flow:column}._lang_ny6ov_10{width:100%;text-align:center;font-family:资源圆体,serif;color:transparent;font-size:300%;background:linear-gradient(150deg,#fff,#fff 75%,#51a8dd);-webkit-background-clip:text}._langSelect_ny6ov_29{display:flex;gap:50px;padding:50px}._langSelectButton_ny6ov_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_ny6ov_35:hover{background:#fff;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}._TextBox_EventHandler_1a401_2{position:absolute;width:100%;height:100%;z-index:6;top:0}._TextBox_main_1a401_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_1a401_1 .7s ease-out forwards;letter-spacing:.2em;justify-content:center}@keyframes _showSoftly_1a401_1{0%{opacity:0}to{opacity:1}}._TextBox_textElement_1a401_38{opacity:0;animation:_showSoftly_1a401_1 1s forwards}._TextBox_textElement_start_1a401_43{animation:_TextDelayShow_1a401_1 .7s ease-out forwards;opacity:0}._TextBox_textElement_Settled_1a401_48{opacity:1}._TextBox_showName_1a401_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_1a401_1{0%{opacity:0}to{opacity:1}}._miniAvatarContainer_1a401_68{position:absolute;height:80%;width:17%;bottom:0;left:.5em}._miniAvatarImg_1a401_76{max-height:100%;max-width:100%;position:absolute;bottom:0}._Backlog_main_1mift_2{font-family:思源宋体,serif;position:absolute;top:0;width:100%;height:100%;z-index:10;background:#000000b3;padding:2em 0;animation:_backlog_soft_in_1mift_1 .7s ease-out forwards;box-sizing:border-box}._Backlog_main_out_1mift_15{font-family:思源宋体,serif;position:absolute;top:0;width:100%;height:100%;z-index:10;background:#000000b3;padding:2em 0;animation:_backlog_soft_out_1mift_1 .7s ease-out forwards;box-sizing:border-box}._Backlog_main_out_IndexHide_1mift_28{z-index:-10}._Backlog_main_DisableScroll_1mift_32{overflow:hidden!important}._backlog_top_1mift_36{padding:0 0 0 1em;display:flex;height:10%}._backlog_top_icon_1mift_42{padding:.6em .6em 0;border-radius:1000px;transform:translateY(-13px);cursor:pointer}._backlog_top_icon_1mift_42:hover{background:#ffffff40;animation:_backlog_icon_softin_1mift_1 .25s ease-out forwards}@keyframes _backlog_icon_softin_1mift_1{0%{background:#fff0}to{background:#ffffff40}}._backlog_title_1mift_62{height:100%;line-height:100%;font-size:360%;font-weight:700;color:transparent;background:linear-gradient(150deg,#fff,#fff 35%,#a5d4e4);-webkit-background-clip:text}._backlog_content_1mift_72{font-family:资源圆体,serif;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_1mift_85{display:flex;color:#fff;font-size:165%;opacity:0;animation:_backlog_item_in_1mift_1 .5s ease-out forwards;margin:1.25em 0 0;width:100%}._backlog_item_out_1mift_95{display:flex;color:#fff;font-size:165%;opacity:0;animation:_backlog_item_out_1mift_95 .5s ease-out forwards;margin:1.25em 0 0;width:100%}._backlog_func_area_1mift_105{display:flex;flex-flow:row;align-items:flex-start;width:30%;max-width:30%;min-width:30%}._backlog_item_content_name_1mift_114{font-weight:700;color:transparent;background:linear-gradient(150deg,#fff,#fff 35%,#a5d4e4);-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_1mift_114{font-size:115%;width:82.5%;box-sizing:border-box;padding:.2em 0 0 1em;letter-spacing:.05em}._backlog_item_button_list_1mift_138{display:flex;flex-flow:row;align-items:flex-start;margin:.35em 0 0}._backlog_item_button_element_1mift_145{cursor:pointer;padding:.01em .75em 0;margin:0 0 0 .5em;background:#ffffff13;border-radius:7px;display:flex}._backlog_item_button_element_1mift_145:hover{background:#ffffff40}._backlog_item_content_text_1mift_158{box-sizing:border-box}@keyframes _backlog_soft_in_1mift_1{0%{opacity:0}to{opacity:1}}@keyframes _backlog_soft_out_1mift_1{0%{opacity:1}to{opacity:0}}@keyframes _backlog_item_in_1mift_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_1mift_95{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}._Save_Load_main_1jtts_2{height:90%;width:100%;position:absolute;cursor:default}._Save_Load_top_1jtts_9{height:10%;width:100%;display:flex;animation:_Elements_in_1jtts_1 ease-out 1s forwards;justify-content:center}._Save_Load_title_1jtts_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_1jtts_35{font-weight:700;color:transparent;background:linear-gradient(135deg,#77428d,#b28fce);text-shadow:2px 2px 15px rgba(255,255,255,.5);-webkit-background-clip:text}._Load_title_text_1jtts_43{font-weight:700;color:transparent;background:linear-gradient(135deg,#005caf,#2ea9df);text-shadow:2px 2px 15px rgba(255,255,255,.5);-webkit-background-clip:text}._Save_Load_top_buttonList_1jtts_51{height:100%;display:flex}._Save_Load_top_button_1jtts_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_1jtts_69{text-align:center;width:100%;padding:0 0 3px;border-left:2px solid rgba(0,0,0,.1)}._Save_Load_top_button_1jtts_51:first-child>div{border-left:2px solid rgba(0,0,0,0)}._Save_Load_top_button_on_1jtts_80{font-weight:700;border-bottom:4px solid #77428D;color:#77428d;background-color:#77428d0d}._Save_Load_top_button_1jtts_51:hover{color:#77428d;font-weight:700;border-bottom:4px solid #77428D}._Load_top_button_on_1jtts_93{font-weight:700;border-bottom:5px solid #005CAF;color:#005caf;background-color:#005caf1a}._Load_top_button_1jtts_93:hover{color:#005caf;font-weight:700;border-bottom:5px solid #005CAF}._Save_Load_content_1jtts_106{height:90%;width:100%;display:flex;flex-wrap:wrap;justify-content:space-evenly;align-items:center}._Save_Load_content_element_1jtts_115{background:linear-gradient(-45deg,#0000000d,#00000013);overflow:hidden;width:17.5%;height:45%;animation:_Elements_in_1jtts_1 1s ease-out forwards,_Elements_in_transform_1jtts_1 1s ease-out;opacity:0;border-radius:4px;transition:transform .25s,box-shadow .25s;cursor:pointer}._Save_Load_content_element_1jtts_115:hover{transform:scale(1.05) translate(-.2em,-.2em)}._Save_Load_content_element_top_1jtts_131{font-family:资源圆体,serif;width:100%;height:12%;display:flex}._Save_Load_content_element_top_index_1jtts_138{color:#fff;text-align:center;font-size:155%;height:100%;width:20%;background-color:#b28fce}._Load_content_elememt_top_index_1jtts_147{background-color:#51a8dd}._Save_Load_content_element_top_date_1jtts_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_1jtts_162{background-color:#005caf}._Save_Load_content_text_1jtts_166{font-family:WebgalUI,sans-serif;letter-spacing:.05em;color:#373c38;background:linear-gradient(-45deg,#ffffffbf,#fff);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_1jtts_180{padding:.2em .75em}._Save_Load_content_speaker_1jtts_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_1jtts_193{color:#005caf}._Load_content_text_1jtts_197{background-color:#005cafbf}._Save_Load_content_miniRen_1jtts_201{width:100%;height:48%;position:relative;background-size:cover}._Save_Load_content_miniRen_bg_1jtts_208{background-size:cover;height:100%;width:100%;background-position:center}._Save_Load_content_miniRen_figure_1jtts_215{height:100%;max-height:100%;max-width:100%;position:absolute;bottom:0}._Save_Load_content_miniRen_figLeft_1jtts_223{bottom:0;left:0}._Save_Load_content_miniRen_figRight_1jtts_228{bottom:0;right:0}@keyframes _Elements_in_1jtts_1{0%{opacity:0}to{opacity:1}}@keyframes _Elements_in_transform_1jtts_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_1jbo0_1{width:100%;height:100%;position:absolute;z-index:13}._Title_buttonList_1jbo0_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_1jbo0_8{font-weight:700;text-align:center;flex:0 1 auto;cursor:pointer;padding:1em 2em;margin:20px 0;transition:all .33s;background:#ffffff26;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-radius:4px;transform:skew(-10deg);background:linear-gradient(to right,#0000004d,#0000001a)}._Title_button_1jbo0_8:hover{text-shadow:0 0 10px rgb(255,255,255);padding:1em 6em 1em 3em}._Title_button_text_1jbo0_41{font-size:165%;color:#fbfbfb;padding:0 .5em;letter-spacing:.2em}._Title_button_text_outer_1jbo0_48,._Title_button_text_inner_1jbo0_52{display:none}._Title_backup_background_1jbo0_56{width:100%;height:100%;position:absolute;z-index:13;background:linear-gradient(135deg,#fdfbfb,#dcddde)}._Title_button_disabled_1jbo0_64{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:#fff}._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_1thmc_2{width:100%;height:100%;position:absolute;top:0;left:0;z-index:14;background-image:linear-gradient(135deg,#93a5cf,#e4efe9);padding:2em;box-sizing:border-box}._extra_top_1thmc_14{padding:0;display:flex;height:10%}._extra_top_icon_1thmc_20{padding:.6em .6em 0;border-radius:1000px;transform:translateY(-13px);cursor:pointer}._extra_top_icon_1thmc_20:hover{background:#ffffff40;animation:_extra_icon_softin_1thmc_1 .25s ease-out forwards}@keyframes _extra_icon_softin_1thmc_1{0%{background:#fff0}to{background:#00000040}}._extra_title_1thmc_40{font-family:思源宋体,serif;height:100%;line-height:100%;font-size:325%;font-weight:700;color:transparent;background:linear-gradient(150deg,#fff,#fff 75%,#51a8dd);-webkit-background-clip:text}._mainContainer_1thmc_51{box-sizing:border-box;padding:0 2em;display:flex;height:92%;flex-flow:column}._bgmContainer_1thmc_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,#a3bdedf2,#6991c7f2);padding:1em 2em;border-radius:4px;transition:max-height .5s;z-index:2}._bgmListContainer_1thmc_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_1thmc_91{display:flex}._bgmControlButton_1thmc_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_1thmc_95:hover{box-shadow:0 0 10px 5px #ffffff59}._bgmName_1thmc_110{color:#fffc;font-family:资源圆体,serif;font-size:155%;margin:5px 5px 0 15px;overflow:hidden}._bgmElement_1thmc_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_1thmc_1{0%{opacity:.95}to{opacity:1}}._bgmElement_1thmc_118:hover{background-color:#ffffffa6;color:#666;transition:background-color .5s,color .5s}._bgmElement_active_1thmc_148{background-color:#ffffffd9!important;color:#666}._cgMain_1thmc_153{width:100%;height:88%}._cgContainer_1thmc_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_1thmc_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_1thmc_185{height:8%;width:100%;display:flex;flex-flow:row;justify-content:center;align-items:flex-end}._cgShowDivWarpper_1thmc_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_1thmc_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_1thmc_209:first-child{margin-left:0}._cgNav_1thmc_209:last-child{margin-right:0}._cgNav_active_1thmc_230{background-color:#ffffffb3!important;color:#005caf}._cgNav_1thmc_209:hover{color:#005caf;background-color:#fff9}._showFullContainer_1thmc_240{z-index:13;position:absolute;top:0;left:0;width:100%;height:100%;background:#0000001a;display:flex;justify-content:center;align-items:center}._showFullCgMain_1thmc_253{cursor:pointer;width:80%;height:80%;box-sizing:border-box;padding:2em;background:#fffffff2;animation:_fullCgIn_1thmc_1 .5s ease-out forwards;opacity:0}@keyframes _fullCgIn_1thmc_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,#e7f0fd)}._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:#0000;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,#516e41);-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,#227d51a6,#516e41a6);-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,#516e41);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,#516e41);-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,#516e41);-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:#0000001a;border-radius:4px;cursor:pointer}._backButton_qbk37_1:hover{background:#0003}._about_qbk37_16{padding:10px 0 0}._icon_qbk37_20{display:inline-flex}._title_qbk37_24{color:transparent;background:linear-gradient(to left,#227d51,#516e41);-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:#fff;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:#516e41e6;border-radius:2em}input[type=range]:focus::-webkit-slider-runnable-track{background:#516e41e6}input[type=range]::-moz-range-thumb{height:36px;width:7.2%;border-radius:5em;background:#fff;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:#516e41e6;border-radius:2em}.Option_WebGAL_slider{position:relative}.bubble{position:absolute;bottom:calc(100% + 10px);transform:translate(-50%);background:#000000d9;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:#ffffffbf;z-index:99;overflow:auto}._devPanelOpener_11x6i_13{position:absolute;right:5px;top:5px;background:#ffffffbf;z-index:100;padding:3px 7px;border-radius:4px;cursor:pointer}@font-face{font-family:资源圆体;src:url(./ResourceHanRoundedCN-Regular-C1HdCLVq.ttf) format("truetype")}@font-face{font-family:思源宋体;src:url(./SourceHanSerifCN-Regular-B_f-kQ2u.ttf) format("truetype")}@font-face{font-family:WebgalUI;src:url(./OPPOSans-R-tAcFw8I3.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:#fff3;border-radius:10px}::-webkit-scrollbar-thumb{border-radius:10px;background:#ffffff80;box-shadow:0 0 10px #00000026;-webkit-box-shadow:0 0 10px rgba(0,0,0,.15)}.App{height:100%;width:100%;background:#000;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
Binary file
Binary file