From 3aa577a1525dbf2ff3cd09b94b2e8a82da29f34d Mon Sep 17 00:00:00 2001 From: YarikMix <43493788+YarikMix@users.noreply.github.com> Date: Sat, 23 Mar 2024 16:13:13 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B5=20=D0=BD=D0=B0=20=D0=B3?= =?UTF-8?q?=D0=BB=D0=B0=D0=B2=D0=BD=D0=BE=D0=B9=20=D1=81=D1=82=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=86=D0=B5=20=D0=B0=D0=BD=D0=B8=D0=BC=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8E=20=D1=81=D0=B8=D1=8F=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .browserslistrc | 5 +- .github/workflows/flow.yaml | 10 +- dist/main.css | 33 ++--- dist/main.js | 2 +- postcss.config.js | 8 +- public/index.html | 1 + public/src/Card/Card.sass | 28 +++++ public/src/Card/Card.tsx | 14 +++ public/src/components/Button/Button.tsx | 11 +- public/src/components/Input/Input.sass | 1 - public/src/components/Profile/Profile.sass | 1 + .../components/ShiningButton/ShinigButton.tsx | 20 +++ .../ShiningButton/ShiningButton.sass | 77 ++++++++++++ public/src/modules/router.tsx | 2 +- public/src/pages/Home/index.tsx | 75 +++++++++++ public/src/pages/{home => Home}/loader.ts | 0 public/src/pages/Home/style.sass | 92 ++++++++++++++ public/src/pages/home/index.tsx | 72 ----------- public/src/pages/home/style.sass | 117 ------------------ public/src/pages/skeleton/skeleton.tsx | 15 --- public/src/utils/breakpoints.sass | 5 + public/src/utils/variables.sass | 2 +- 22 files changed, 352 insertions(+), 239 deletions(-) create mode 100644 public/src/Card/Card.sass create mode 100644 public/src/Card/Card.tsx create mode 100644 public/src/components/ShiningButton/ShinigButton.tsx create mode 100644 public/src/components/ShiningButton/ShiningButton.sass create mode 100644 public/src/pages/Home/index.tsx rename public/src/pages/{home => Home}/loader.ts (100%) create mode 100644 public/src/pages/Home/style.sass delete mode 100644 public/src/pages/home/index.tsx delete mode 100644 public/src/pages/home/style.sass delete mode 100644 public/src/pages/skeleton/skeleton.tsx create mode 100644 public/src/utils/breakpoints.sass diff --git a/.browserslistrc b/.browserslistrc index b25b054a..9054e09a 100644 --- a/.browserslistrc +++ b/.browserslistrc @@ -1 +1,4 @@ -last 4 versions \ No newline at end of file +last 4 versions +Safari >= 12 +not dead +> 0.5% \ No newline at end of file diff --git a/.github/workflows/flow.yaml b/.github/workflows/flow.yaml index 0983c679..2dbbacc1 100644 --- a/.github/workflows/flow.yaml +++ b/.github/workflows/flow.yaml @@ -3,7 +3,7 @@ name: YouNote build on: push: branches: - - home + - Home - dev - vls-36 - vls-58 @@ -18,7 +18,7 @@ jobs: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} key: ${{ secrets.PRIVATE_KEY }} - script: cd /home/${{ secrets.USERNAME }}/frontend/2024_1_scratch_senior_devs && git pull + script: cd /Home/${{ secrets.USERNAME }}/frontend/2024_1_scratch_senior_devs && git pull - name: Build frontend uses: appleboy/ssh-action@master with: @@ -26,7 +26,7 @@ jobs: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} key: ${{ secrets.PRIVATE_KEY }} - script: cd /home/${{ secrets.USERNAME }}/frontend/2024_1_scratch_senior_devs && npm run build + script: cd /Home/${{ secrets.USERNAME }}/frontend/2024_1_scratch_senior_devs && npm run build - name: Build frontend uses: appleboy/ssh-action@master with: @@ -34,7 +34,7 @@ jobs: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} key: ${{ secrets.PRIVATE_KEY }} - script: sudo cp -rf /home/${{ secrets.USERNAME}}/frontend/2024_1_scratch_senior_devs/dist/* /opt/public/ + script: sudo cp -rf /Home/${{ secrets.USERNAME}}/frontend/2024_1_scratch_senior_devs/dist/* /opt/public/ - name: Build frontend uses: appleboy/ssh-action@master with: @@ -42,4 +42,4 @@ jobs: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} key: ${{ secrets.PRIVATE_KEY }} - script: sudo mkdir -p /opt/public/src && sudo rsync -av --delete /home/${{ secrets.USERNAME }}/frontend/2024_1_scratch_senior_devs/public/src/assets/ /opt/public/src/assets/ + script: sudo mkdir -p /opt/public/src && sudo rsync -av --delete /Home/${{ secrets.USERNAME }}/frontend/2024_1_scratch_senior_devs/public/src/assets/ /opt/public/src/assets/ diff --git a/dist/main.css b/dist/main.css index 9c06272c..eff3d00e 100644 --- a/dist/main.css +++ b/dist/main.css @@ -1,19 +1,20 @@ -.home{width:100%;display:flex;flex-direction:column;background:radial-gradient(ellipse at bottom, #1b2735 0%, #090a0f 100%)}.home section{width:100%}.home .first{display:grid;position:relative;grid-template-areas:"stack";height:100vh}.home .first .text-container{display:flex;flex-direction:column;width:100%;justify-content:center;align-items:center;gap:60px;grid-area:stack;z-index:10;animation-duration:1s;animation-fill-mode:both;animation-name:fadeIn}.home .first .text-container h1{text-align:center;font-size:36px;color:#fff;text-shadow:0 0 10px #007fff,0 0 20px #007fff,0 0 40px #007fff,0 0 80px #007fff}.home .first .text-container button{font-size:36px;border-radius:30px;padding:12px 20px;max-width:300px;background:#007fff}.home .second{display:flex;justify-content:center;align-items:center;flex-direction:column;color:#f4f6f9;padding:0 15%;gap:75px;min-height:100vh;z-index:100}.home .second h2{font-size:36px;text-shadow:0 0 10px #007fff,0 0 20px #007fff,0 0 40px #007fff,0 0 80px #007fff}.home .second .cards-container{display:grid;grid-template-columns:repeat(auto-fit, minmax(275px, 0.15fr));justify-content:center;width:100%;gap:25px}.home .second .cards-container .card{background:rgba(255,255,255,.015);box-shadow:0 3px 6px rgba(0,0,0,.05),0 8px 15px rgba(0,0,0,.1),0 0 0 1px rgba(255,255,255,.1);padding:15px;border-radius:15px;display:flex;justify-content:flex-start;align-items:center;flex-direction:column;gap:10px;transition:all .25s ease-out;cursor:pointer}.home .second .cards-container .card.animate{animation:1s both fadeInUp}.home .second .cards-container .card.animate:nth-child(1){animation-delay:0s}.home .second .cards-container .card.animate:nth-child(2){animation-delay:.15s}.home .second .cards-container .card.animate:nth-child(3){animation-delay:.3s}.home .second .cards-container .card.animate:nth-child(4){animation-delay:.45s}@keyframes fadeInUp{from{opacity:0;transform:translate3d(0, 40px, 0)}to{transform:translate3d(0, 0, 0);opacity:1}}.home .second .cards-container .card:hover{box-shadow:0 3px 6px rgba(0,0,0,.04),0 15px 25px rgba(0,0,0,.3),0 0 0 1px rgba(255,255,255,.2)}.home .second .cards-container .card img{width:52px;height:52px}.home .second .cards-container .card .card h3{color:#fff}.home .second .cards-container .card span{color:#a1a1aa;text-align:center}.home .second .cards-container .card.animate{animation:1s both fadeInUp} -.button{background-color:#007fff;border-radius:20px;padding:8px 16px;border:none;outline:none;color:#fff;text-align:center;cursor:pointer;transition:.3s}.button:hover{transform:scale(1.05)}.button:active{transform:scale(0.98)}.button.hidden{display:none} -.toast{background:#1b2735;box-shadow:0 5px 10px rgba(0,0,0,.1);padding:15px 35px 15px 20px;position:absolute;bottom:25px;right:30px;border-radius:12px;min-width:300px;z-index:1000;overflow:hidden;animation:fadeLeft .5s cubic-bezier(0.68, -0.55, 0.265, 1.35);transition:.3s}.toast.hide{animation:fadeRight .5s cubic-bezier(0.68, -0.55, 0.265, 1.35)}.toast .toast-content{display:flex;align-items:center;gap:15px;pointer-events:none}@keyframes fadeLeft{0%{transform:translateX(calc(100% + 30px))}100%{transform:translateX(0%)}}@keyframes fadeRight{0%{transform:translateX(0%)}100%{transform:translateX(calc(100% + 30px))}}.toast-content .toast-icon{height:30px;width:30px}.toast-content .content{display:flex;flex-direction:column}.toast-content .content .title{font-size:20px;color:#f4f6f9;font-weight:600}.toast-content .content .message{font-size:14px;color:#f4f6f9}.toast .toast-close-btn{position:absolute;top:10px;right:15px;cursor:pointer;width:16px;height:16px;opacity:.8;filter:invert(80%)}.toast .toast-close-btn:hover{opacity:1}.toast .progress{position:absolute;bottom:0;left:0;height:3px;width:100%;background:rgba(0,0,0,0)}.toast .progress:before{content:"";position:absolute;bottom:0;right:0;height:100%;width:100%;animation:progress 3s linear forwards;background-color:#546189}@keyframes progress{100%{right:100%}} -.auth-page-wrapper{width:100%;min-height:100vh;display:flex;justify-content:center;align-items:center;background:radial-gradient(ellipse at bottom, #1b2735 0%, #090a0f 100%)}.auth-page-wrapper .glassmorphism-container{position:relative}.auth-page-wrapper .glassmorphism-container::before,.auth-page-wrapper .glassmorphism-container::after{width:300px;height:300px;position:absolute;border-radius:50%;content:"";z-index:1}.auth-page-wrapper .glassmorphism-container:before{background:linear-gradient(#9b22ea, #bf23f6);top:-100px;left:-100px}.auth-page-wrapper .glassmorphism-container:after{background:linear-gradient(#ff512f, #f09819);bottom:-100px;right:-100px}.auth-page-wrapper .auth-container{background:rgba(64,64,64,.15);border:2px solid rgba(255,255,255,.3);backdrop-filter:blur(25px);border-radius:30px;box-shadow:0 0 15px rgba(0,0,0,.35);position:relative;width:768px;max-width:100%;min-height:500px;animation-duration:1s;animation-fill-mode:both;animation-name:fadeIn;overflow:hidden;z-index:10}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.auth-page-wrapper .auth-container .form-container{position:absolute;top:0;height:100%;transition:all .6s ease-in-out;display:flex;justify-content:center;align-items:center}.auth-page-wrapper .auth-container .form-container form{width:300px;height:100%;display:flex;justify-content:center;align-items:center;flex-direction:column}.auth-page-wrapper .auth-container .form-container form h3{font-size:28px;margin-bottom:25px;color:#fff}.auth-page-wrapper .auth-container .form-container form button{font-size:20px;min-width:120px;background:#007fff;border-radius:20px;color:#fff;cursor:pointer;line-height:24px;outline:0 solid rgba(0,0,0,0);padding:12px 18px;user-select:none;border:0}.auth-page-wrapper .auth-container .form-container form button:hover{background:#1e59f1;transform:scale(1)}.auth-page-wrapper .auth-container .form-container.sign-in{left:0;width:50%;opacity:1;z-index:1}.auth-page-wrapper .auth-container .form-container.sign-up{left:0;width:50%;opacity:0}.auth-page-wrapper .auth-container .form-container.sign-up.fade-left{animation:move2 .6s}@keyframes move2{0%{opacity:1}80%{opacity:0}}.auth-page-wrapper .auth-container .form-container.sign-up.fade-right{animation:move1 .6s}@keyframes move1{0%,49.99%{opacity:0;z-index:1}50%,100%{opacity:1;z-index:5}}.auth-page-wrapper .auth-container .toggle-container{position:absolute;top:0;left:50%;width:50%;height:100%;overflow:hidden;transition:all .6s ease-in-out;border-radius:150px 0 0 100px;z-index:1000}.auth-page-wrapper .auth-container .toggle-container .toggle{background:#007fff;color:#fff;position:relative;left:-100%;height:100%;width:200%;transform:translateX(0);transition:all .6s ease-in-out}.auth-page-wrapper .auth-container .toggle-container .toggle .toggle-panel{position:absolute;width:50%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:25px;top:0;transform:translateX(0);transition:all .6s ease-in-out}.auth-page-wrapper .auth-container .toggle-container .toggle .toggle-panel button{background-color:rgba(0,0,0,0);color:#fff;font-size:14px;padding:10px 45px;border:1px solid #fff;border-radius:8px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.auth-page-wrapper .auth-container .toggle-container .toggle .toggle-left{transform:translateX(-100%)}.auth-page-wrapper .auth-container .toggle-container .toggle .toggle-right{right:0;transform:translateX(0)}.auth-page-wrapper.active .auth-container .form-container.sign-in{transform:translateX(40%);opacity:0}.auth-page-wrapper.active .auth-container .form-container.sign-up{transform:translateX(100%);opacity:1;z-index:5}.auth-page-wrapper.active .auth-container .toggle-container{transform:translateX(-100%);border-radius:0 150px 100px 0}.auth-page-wrapper.active .auth-container .toggle-container .toggle{transform:translateX(50%)}.auth-page-wrapper.active .auth-container .toggle-container .toggle-left{transform:translateX(0)}.auth-page-wrapper.active .auth-container .toggle-container .toggle-right{transform:translateX(100%)} -.input-container{width:100%;position:relative}.input-container input{width:100%;padding:12px 12px 12px 40px;border:1px solid #ddd;outline:none;border-radius:99px;transition:.3s;background:rgba(255,255,255,.1);color:#f4f6f9}.input-container input::placeholder{color:rgba(255,255,255,.8)}.input-container input:focus{border:1px solid #007fff}.input-container.success input{border:1px solid #568203}.input-container.error input{border:1px solid #c92432}.input-container .errors-container{height:40px;color:#c92432;font-size:13px;padding:0 10px}.input-container .password-toggle-btn{position:absolute;width:24px;height:24px;top:12px;right:16px;cursor:pointer;filter:invert(85%);transition:.5s ease}.input-container .password-toggle-btn:hover{filter:invert(75%)}.input-container input[type=password]~.password-toggle-btn-container .show-btn{opacity:1;transform:scale(1)}.input-container input[type=password]~.password-toggle-btn-container .hide-btn{opacity:0;transform:scale(0)}.input-container input[type=text]~.password-toggle-btn-container .show-btn{opacity:0;transform:scale(0)}.input-container input[type=text]~.password-toggle-btn-container .hide-btn{opacity:1;transform:scale(1)}.input-container .icon{position:absolute;top:16px;left:16px;width:16px;height:16px;filter:invert(85%)} -.notes-page-wrapper{width:100%;height:100vh;display:flex;justify-content:center;gap:25px;padding:125px 15% 75px calc(15% - 10px);background:radial-gradient(ellipse at bottom, #1b2735 0%, #090a0f 100%)}.notes-page-wrapper.active{display:grid;grid-template-columns:325px 1fr;grid-template-rows:100%}.notes-page-wrapper aside{display:flex;flex-direction:column;align-items:center;width:500px;max-height:100%;gap:15px}.notes-page-wrapper.active aside{width:325px}.notes-page-wrapper .notes-container{display:flex;justify-content:flex-start;align-items:center;flex-direction:column;gap:25px;overflow-y:auto;flex:1;width:100%;padding:5px 15px}.notes-page-wrapper .notes-container::-webkit-scrollbar-track{box-shadow:inset 0 0 4px rgba(0,0,0,.2);border-radius:10px}.notes-page-wrapper .notes-container::-webkit-scrollbar{width:6px}.notes-page-wrapper .notes-container::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 6px rgba(0,0,0,.1);background:#a1a1aa}.notes-page-wrapper .notes-container .not-found-label{margin-top:25px;color:#f4f6f9;text-align:center}@keyframes fadeIn{from{opacity:0}to{opacity:1}} -.note-container{display:flex;flex-direction:column;gap:10px;background:rgba(27,39,53,.3);border-radius:15px;padding:15px 60px 40px 15px;width:100%;cursor:pointer;transition:.5s;position:relative}.note-container:hover{transform:scale(1.05)}.note-container h3{color:#f4f6f9}.note-container p{color:#a1a1aa}.note-container.selected{box-shadow:0 0 3px #007fff,0 0 10px #007fff}.note-container .update-time{position:absolute;right:10px;bottom:10px;color:#a1a1aa} -.search{width:calc(100% - 30px);display:flex;align-items:center;padding:12px 16px;border-radius:28px;background:rgba(27,39,53,.3);z-index:1}.search .search-input{font-size:16px;color:#f4f6f9;outline:none;border:none;background:rgba(0,0,0,0);flex:1}.search .search-input::placeholder{color:#a1a1aa} -.note-editor{min-width:500px;border-radius:15px;background:rgba(27,39,53,.3);display:none;flex-direction:column;padding:20px;gap:15px}.note-editor.active{display:flex;animation:fadeIn 1s}.note-editor.active .close-editor-btn{display:block}.note-editor .top-panel{display:flex;justify-content:space-between}.note-editor .top-panel .left-container{display:flex;gap:5px}.note-editor .top-panel .left-container .item{padding:4px;transition:.3s;cursor:pointer;border-radius:4px}.note-editor .top-panel .left-container .item .icon{width:18px;height:18px;transition:.3s;filter:invert(80%)}.note-editor .top-panel .left-container .item:hover{background:#333437}.note-editor .top-panel .left-container .item:hover .icon{filter:invert(75%)}.note-editor .top-panel .right-container{display:flex;gap:12px}.note-editor .top-panel .right-container .icon{width:24px;height:24px;cursor:pointer;transition:.3s;filter:invert(80%);opacity:.8}.note-editor .top-panel .right-container .icon:hover{opacity:1}.note-editor .bottom-panel{display:flex;flex-direction:column;gap:10px;height:100%}.note-editor .bottom-panel [contenteditable]{outline:none}.note-editor .bottom-panel .note-title-container{width:100%}.note-editor .bottom-panel .note-title-container .note-title{font-size:28px;color:#f4f6f9}.note-editor .bottom-panel .note-content{padding-right:10px;overflow-y:auto;height:100%}.note-editor .bottom-panel .note-content::-webkit-scrollbar-track{box-shadow:inset 0 0 4px rgba(0,0,0,.2);border-radius:10px}.note-editor .bottom-panel .note-content::-webkit-scrollbar{width:6px}.note-editor .bottom-panel .note-content::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 6px rgba(0,0,0,.1);background:#a1a1aa}.note-editor .bottom-panel .note-content span{font-size:18px;color:#f4f6f9} -.modal-wrapper{position:fixed;top:-110vh;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;transition:top 0ms ease-in-out 300ms;z-index:1000}.modal-wrapper.active{top:0;transition:top 0ms ease-in-out 0ms}.modal-wrapper.active .overlay{opacity:1}.modal-wrapper.active .modal-content{animation:.3s superScaleIn ease-in-out;opacity:1}.modal-wrapper .overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.4);opacity:0;transition:all 300ms ease-in-out}.modal-wrapper .modal-content{position:absolute;background:#1b2735;border-radius:20px;box-shadow:0 2px 2px 5px rgba(0,0,0,.05);opacity:0;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding:20px;gap:15px;max-width:400px;animation:.3s scaleOut ease-in-out}@keyframes superScaleIn{0%{transform:scale(1.2);opacity:0}100%{transform:scale(1);opacity:1}}@keyframes scaleOut{0%{transform:scale(1);opacity:1}100%{transform:scale(1.2);opacity:0}}.modal-wrapper .modal-content h2{color:#f4f6f9}.modal-wrapper .modal-content span{color:#f4f6f9;text-align:center}.modal-wrapper .modal-content .buttons-container{display:flex;gap:10px}.modal-wrapper .modal-content .buttons-container .cancel-btn{background:#a1a1aa}.modal-wrapper .modal-content .close-modal-btn{position:absolute;top:16px;right:16px;width:24px;height:24px;cursor:pointer;filter:invert(80%);transition:.3s;opacity:.8}.modal-wrapper .modal-content .close-modal-btn:hover{opacity:1} -header{width:100%;padding:0 15%;height:60px;display:flex;justify-content:space-between;align-items:center;position:fixed;transition:.5s;z-index:1000;background:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0))} -.logo-wrapper{cursor:pointer}.logo-wrapper img{width:36px;height:36px;transition:.3s}.logo-wrapper img:hover{transform:rotate(15deg)} -.user-profile-wrapper{position:relative}.user-profile-wrapper .toggle-profile-button{font-size:0;width:42px;height:42px;box-sizing:border-box;border-radius:50%;padding:14px 10px;position:relative;cursor:pointer;background:#1b2735;z-index:10}.user-profile-wrapper .toggle-profile-button:hover .slider:before{left:30%}.user-profile-wrapper .toggle-profile-button:hover .slider.two:before{left:70%}.user-profile-wrapper .toggle-profile-button:hover .slider.three:before{left:30%}.user-profile-wrapper .toggle-profile-button .slider{width:22px;border-radius:4px;height:2px;background:#fff;position:absolute;transform-origin:2px 2px;transition:all 500ms cubic-bezier(0, 1, 0, 1)}.user-profile-wrapper .toggle-profile-button .slider.two{margin-top:6px}.user-profile-wrapper .toggle-profile-button .slider.two:before{left:30%;transition-delay:55ms}.user-profile-wrapper .toggle-profile-button .slider.three{margin-top:12px}.user-profile-wrapper .toggle-profile-button .slider.three:before{left:70%;transition-delay:110ms}.user-profile-wrapper .toggle-profile-button .slider:before{width:6px;height:6px;margin-top:-2px;margin-left:-3px;border-radius:999px;background:#fff;display:inline-block;content:"";position:absolute;left:70%;transition:left 140ms cubic-bezier(0, 2, 1, 1)}.user-profile-wrapper.open .toggle-profile-button .one{transform:translate3d(4px, 1px, 0) rotate(45deg);width:18px}.user-profile-wrapper.open .toggle-profile-button .three{transform:translate3d(5px, -1px, 0) rotate(-45deg);width:18px}.user-profile-wrapper.open .toggle-profile-button .two{width:0;display:none}.user-profile-wrapper.open .toggle-profile-button .slider:before{width:0;height:0}.user-profile-wrapper .panel{height:42px;width:42px;position:absolute;top:0;right:0;overflow:hidden;display:flex;transition:all .5s;border-radius:50%;box-shadow:rgba(0,0,0,.35) 0 5px 15px;background:#1b2735}.user-profile-wrapper .panel .popup-content{height:100%;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:15px;transition:all .5s;position:absolute;right:0;overflow:hidden}.user-profile-wrapper .panel .popup-content .user-avatar-container{width:100px;height:100px}.user-profile-wrapper .panel .popup-content .user-avatar-container{width:100px;height:100px;position:relative;border-radius:50%}.user-profile-wrapper .panel .popup-content .user-avatar-container:hover .upload-preview{opacity:1}.user-profile-wrapper .panel .popup-content .user-avatar-container .user-avatar{width:100px;height:100px;border-radius:50%}.user-profile-wrapper .panel .popup-content .user-avatar-container .user-avatar.loading{display:none}.user-profile-wrapper .panel .popup-content .user-avatar-container .upload-preview{position:absolute;top:0;right:0;width:100%;height:100%;border-radius:50%;background:rgba(0,0,0,.8);opacity:0;cursor:pointer;transition:.3s;display:flex;justify-content:center;align-items:center}.user-profile-wrapper .panel .popup-content .user-avatar-container .upload-preview label{z-index:100;width:100%;height:100%;position:absolute;top:0;right:0;border-radius:50%;cursor:pointer}.user-profile-wrapper .panel .popup-content .user-avatar-container .upload-preview .upload-preview-icon{width:32px;height:32px;filter:invert(80%)}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper{width:100px;height:100px;transform:scale(0);transition:1s;position:absolute;top:0;right:0;z-index:100}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .inner{position:absolute;width:80px;height:80px;background:#1b2735;border-radius:50%;top:50%;left:50%;transform:translate(-50%, -50%);z-index:2;transition:1s ease;transition-delay:1.5s}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .circle .bar{position:absolute;width:100%;height:100%;background:#ddd;border-radius:50%;clip:rect(0px, 100px, 100px, 50px)}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .circle .bar .progress{position:absolute;width:100%;height:100%;background:#3d559d;border-radius:50%;clip:rect(0px, 50px, 100px, 0px);z-index:1}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .circle .left .progress{transition:.5s linear;transition-delay:.5s}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .circle .right{transform:rotate(180deg)}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .circle .right .progress{transition:.5s linear;transition-delay:1s}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .checkmark{position:absolute;width:100%;height:100%;border-radius:50%;z-index:2}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .checkmark span{position:absolute;display:block;width:30px;height:7px;background:#fff;border-radius:5px;transform-origin:left;transition:.25s}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .checkmark span:first-child{top:45px;left:22px;width:30px;transform:rotate(45deg) scaleX(0);transition-delay:2.5s}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .checkmark span:last-child{top:65px;left:40px;width:50px;transform:rotate(-45deg) scaleX(0);transition-delay:2.75s}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper.active{transform:scale(1)}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper.active .inner{transform:translate(-50%, -50%) scale(0)}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper.active .circle .left .progress{transform:rotate(180deg)}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper.active .circle .right .progress{transform:rotate(180deg)}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper.active .checkmark span:first-child{transform:rotate(45deg) scaleX(1)}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper.active .checkmark span:last-child{transform:rotate(-45deg) scaleX(1)}.user-profile-wrapper .panel .popup-content .username{color:#fff;font-weight:700;font-size:22px}.user-profile-wrapper .panel .popup-content .change-password-btn{width:200px;text-align:center;color:#007fff;cursor:pointer;transition:.3s}.user-profile-wrapper .panel .popup-content .change-password-btn:hover{color:#1e59f1}.user-profile-wrapper .panel .popup-content .logout-btn{width:140px;background:#fff;color:#333437}.user-profile-wrapper.open .panel{height:300px;width:200px;border-radius:25px} +.home{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.home section{width:100%}.home .first{display:grid;position:relative;grid-template-areas:"stack";height:100vh}.home .first .text-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:60px;grid-area:stack;z-index:10;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:fadeIn;animation-name:fadeIn}.home .first .text-container h1{text-align:center;font-size:36px;color:#fff;text-shadow:0 0 10px #007fff,0 0 20px #007fff,0 0 40px #007fff,0 0 80px #007fff}.home .first .text-container button{font-size:36px;border-radius:30px;padding:12px 20px;max-width:300px;background:#007fff}.home .second{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;color:#f4f6f9;padding:0 15%;gap:75px;min-height:100vh;z-index:100}@media screen and (max-width: 800px){.home .second{padding:0}}.home .second h2{font-size:36px;text-shadow:0 0 10px #007fff,0 0 20px #007fff,0 0 40px #007fff,0 0 80px #007fff}.home .second .cards-container{display:grid;grid-template-columns:repeat(auto-fit, minmax(275px, 0.15fr));-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100%;gap:25px}.home .second .cards-container .card{background:rgba(255,255,255,.015);-webkit-box-shadow:0 3px 6px rgba(0,0,0,.05),0 8px 15px rgba(0,0,0,.1),0 0 0 1px rgba(255,255,255,.1);box-shadow:0 3px 6px rgba(0,0,0,.05),0 8px 15px rgba(0,0,0,.1),0 0 0 1px rgba(255,255,255,.1);padding:15px;border-radius:15px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:10px;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;cursor:pointer}.home .second .cards-container .card.animate{-webkit-animation:1s both fadeInUp;animation:1s both fadeInUp}.home .second .cards-container .card.animate:nth-child(1){-webkit-animation-delay:0s;animation-delay:0s}.home .second .cards-container .card.animate:nth-child(2){-webkit-animation-delay:.15s;animation-delay:.15s}.home .second .cards-container .card.animate:nth-child(3){-webkit-animation-delay:.3s;animation-delay:.3s}.home .second .cards-container .card.animate:nth-child(4){-webkit-animation-delay:.45s;animation-delay:.45s}@-webkit-keyframes fadeInUp{from{opacity:0;-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0)}to{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);opacity:1}}@keyframes fadeInUp{from{opacity:0;-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0)}to{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);opacity:1}}.home .second .cards-container .card:hover{-webkit-box-shadow:0 3px 6px rgba(0,0,0,.04),0 15px 25px rgba(0,0,0,.3),0 0 0 1px rgba(255,255,255,.2);box-shadow:0 3px 6px rgba(0,0,0,.04),0 15px 25px rgba(0,0,0,.3),0 0 0 1px rgba(255,255,255,.2)}.home .second .cards-container .card img{width:52px;height:52px}.home .second .cards-container .card .card h3{color:#fff}.home .second .cards-container .card span{color:#a1a1aa;text-align:center}.home .second .cards-container .card.animate{-webkit-animation:1s both fadeInUp;animation:1s both fadeInUp} +.button{background-color:#007fff;border-radius:20px;padding:8px 16px;border:none;outline:none;color:#fff;text-align:center;cursor:pointer;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s, -webkit-transform .3s}.button:hover{-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05)}.button:active{-webkit-transform:scale(0.98);-ms-transform:scale(0.98);transform:scale(0.98)}.button.hidden{display:none} +.toast{background:#1b2735;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.1);box-shadow:0 5px 10px rgba(0,0,0,.1);padding:15px 35px 15px 20px;position:absolute;bottom:25px;right:30px;border-radius:12px;min-width:300px;z-index:1000;overflow:hidden;-webkit-animation:fadeLeft .5s cubic-bezier(0.68, -0.55, 0.265, 1.35);animation:fadeLeft .5s cubic-bezier(0.68, -0.55, 0.265, 1.35);-webkit-transition:.3s;transition:.3s}.toast.hide{-webkit-animation:fadeRight .5s cubic-bezier(0.68, -0.55, 0.265, 1.35);animation:fadeRight .5s cubic-bezier(0.68, -0.55, 0.265, 1.35)}.toast .toast-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:15px;pointer-events:none}@-webkit-keyframes fadeLeft{0%{-webkit-transform:translateX(calc(100% + 30px));transform:translateX(calc(100% + 30px))}100%{-webkit-transform:translateX(0%);transform:translateX(0%)}}@keyframes fadeLeft{0%{-webkit-transform:translateX(calc(100% + 30px));transform:translateX(calc(100% + 30px))}100%{-webkit-transform:translateX(0%);transform:translateX(0%)}}@-webkit-keyframes fadeRight{0%{-webkit-transform:translateX(0%);transform:translateX(0%)}100%{-webkit-transform:translateX(calc(100% + 30px));transform:translateX(calc(100% + 30px))}}@keyframes fadeRight{0%{-webkit-transform:translateX(0%);transform:translateX(0%)}100%{-webkit-transform:translateX(calc(100% + 30px));transform:translateX(calc(100% + 30px))}}.toast-content .toast-icon{height:30px;width:30px}.toast-content .content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.toast-content .content .title{font-size:20px;color:#f4f6f9;font-weight:600}.toast-content .content .message{font-size:14px;color:#f4f6f9}.toast .toast-close-btn{position:absolute;top:10px;right:15px;cursor:pointer;width:16px;height:16px;opacity:.8;-webkit-filter:invert(80%);filter:invert(80%)}.toast .toast-close-btn:hover{opacity:1}.toast .progress{position:absolute;bottom:0;left:0;height:3px;width:100%;background:rgba(0,0,0,0)}.toast .progress:before{content:"";position:absolute;bottom:0;right:0;height:100%;width:100%;-webkit-animation:progress 3s linear forwards;animation:progress 3s linear forwards;background-color:#546189}@-webkit-keyframes progress{100%{right:100%}}@keyframes progress{100%{right:100%}} +.auth-page-wrapper{width:100%;min-height:100vh;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.auth-page-wrapper .glassmorphism-container{position:relative}.auth-page-wrapper .glassmorphism-container::before,.auth-page-wrapper .glassmorphism-container::after{width:300px;height:300px;position:absolute;border-radius:50%;content:"";z-index:1}.auth-page-wrapper .glassmorphism-container:before{background:-webkit-gradient(linear, left top, left bottom, from(#9b22ea), to(#bf23f6));background:linear-gradient(#9b22ea, #bf23f6);top:-100px;left:-100px}.auth-page-wrapper .glassmorphism-container:after{background:-webkit-gradient(linear, left top, left bottom, from(#ff512f), to(#f09819));background:linear-gradient(#ff512f, #f09819);bottom:-100px;right:-100px}.auth-page-wrapper .auth-container{background:rgba(64,64,64,.15);border:2px solid rgba(255,255,255,.3);-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px);border-radius:30px;-webkit-box-shadow:0 0 15px rgba(0,0,0,.35);box-shadow:0 0 15px rgba(0,0,0,.35);position:relative;width:768px;max-width:100%;min-height:500px;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:fadeIn;animation-name:fadeIn;overflow:hidden;z-index:10}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.auth-page-wrapper .auth-container .form-container{position:absolute;top:0;height:100%;-webkit-transition:all .6s ease-in-out;transition:all .6s ease-in-out;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.auth-page-wrapper .auth-container .form-container form{width:300px;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.auth-page-wrapper .auth-container .form-container form h3{font-size:28px;margin-bottom:25px;color:#fff}.auth-page-wrapper .auth-container .form-container form button{font-size:20px;min-width:120px;background:#007fff;border-radius:20px;color:#fff;cursor:pointer;line-height:24px;outline:0 solid rgba(0,0,0,0);padding:12px 18px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:0}.auth-page-wrapper .auth-container .form-container form button:hover{background:#1e59f1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.auth-page-wrapper .auth-container .form-container.sign-in{left:0;width:50%;opacity:1;z-index:1}.auth-page-wrapper .auth-container .form-container.sign-up{left:0;width:50%;opacity:0}.auth-page-wrapper .auth-container .form-container.sign-up.fade-left{-webkit-animation:move2 .6s;animation:move2 .6s}@-webkit-keyframes move2{0%{opacity:1}80%{opacity:0}}@keyframes move2{0%{opacity:1}80%{opacity:0}}.auth-page-wrapper .auth-container .form-container.sign-up.fade-right{-webkit-animation:move1 .6s;animation:move1 .6s}@-webkit-keyframes move1{0%,49.99%{opacity:0;z-index:1}50%,100%{opacity:1;z-index:5}}@keyframes move1{0%,49.99%{opacity:0;z-index:1}50%,100%{opacity:1;z-index:5}}.auth-page-wrapper .auth-container .toggle-container{position:absolute;top:0;left:50%;width:50%;height:100%;overflow:hidden;-webkit-transition:all .6s ease-in-out;transition:all .6s ease-in-out;border-radius:150px 0 0 100px;z-index:1000}.auth-page-wrapper .auth-container .toggle-container .toggle{background:#007fff;color:#fff;position:relative;left:-100%;height:100%;width:200%;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);-webkit-transition:all .6s ease-in-out;transition:all .6s ease-in-out}.auth-page-wrapper .auth-container .toggle-container .toggle .toggle-panel{position:absolute;width:50%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:25px;top:0;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);-webkit-transition:all .6s ease-in-out;transition:all .6s ease-in-out}.auth-page-wrapper .auth-container .toggle-container .toggle .toggle-panel button{background-color:rgba(0,0,0,0);color:#fff;font-size:14px;padding:10px 45px;border:1px solid #fff;border-radius:8px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;-webkit-transition:all .2s ease;transition:all .2s ease}.auth-page-wrapper .auth-container .toggle-container .toggle .toggle-left{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.auth-page-wrapper .auth-container .toggle-container .toggle .toggle-right{right:0;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.auth-page-wrapper.active .auth-container .form-container.sign-in{-webkit-transform:translateX(40%);-ms-transform:translateX(40%);transform:translateX(40%);opacity:0}.auth-page-wrapper.active .auth-container .form-container.sign-up{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);opacity:1;z-index:5}.auth-page-wrapper.active .auth-container .toggle-container{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);border-radius:0 150px 100px 0}.auth-page-wrapper.active .auth-container .toggle-container .toggle{-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%)}.auth-page-wrapper.active .auth-container .toggle-container .toggle-left{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.auth-page-wrapper.active .auth-container .toggle-container .toggle-right{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)} +.input-container{width:100%;position:relative}.input-container input{width:100%;padding:12px 12px 12px 40px;border:1px solid #ddd;outline:none;border-radius:99px;-webkit-transition:.3s;transition:.3s;background:rgba(255,255,255,.1);color:#f4f6f9}.input-container input::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.input-container input::-moz-placeholder{color:rgba(255,255,255,.8)}.input-container input:-ms-input-placeholder{color:rgba(255,255,255,.8)}.input-container input::-ms-input-placeholder{color:rgba(255,255,255,.8)}.input-container input::placeholder{color:rgba(255,255,255,.8)}.input-container input:focus{border:1px solid #007fff}.input-container.success input{border:1px solid #568203}.input-container.error input{border:1px solid #c92432}.input-container .errors-container{height:40px;color:#c92432;font-size:13px;padding:0 10px}.input-container .password-toggle-btn{position:absolute;width:24px;height:24px;top:12px;right:16px;cursor:pointer;-webkit-filter:invert(85%);filter:invert(85%);-webkit-transition:.5s ease;transition:.5s ease}.input-container .password-toggle-btn:hover{-webkit-filter:invert(75%);filter:invert(75%)}.input-container input[type=password]~.password-toggle-btn-container .show-btn{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.input-container input[type=password]~.password-toggle-btn-container .hide-btn{opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.input-container input[type=text]~.password-toggle-btn-container .show-btn{opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.input-container input[type=text]~.password-toggle-btn-container .hide-btn{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.input-container .icon{position:absolute;top:16px;left:16px;width:16px;height:16px;-webkit-filter:invert(85%);filter:invert(85%)} +.notes-page-wrapper{width:100%;height:100vh;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;gap:25px;padding:125px 15% 75px calc(15% - 10px);background:radial-gradient(ellipse at bottom, #1b2735 0%, #090a0f 100%)}.notes-page-wrapper.active{display:grid;grid-template-columns:325px 1fr;grid-template-rows:100%}.notes-page-wrapper aside{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:500px;max-height:100%;gap:15px}.notes-page-wrapper aside .top-panel{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:15px;width:100%;padding:5px 15px}.notes-page-wrapper aside .top-panel .button{height:100%;width:220px;background:rgba(27,39,53,.3);color:#f4f6f9}.notes-page-wrapper aside .notes-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:25px;overflow-y:auto;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;padding:5px 15px}.notes-page-wrapper aside .notes-container::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 4px rgba(0,0,0,.2);box-shadow:inset 0 0 4px rgba(0,0,0,.2);border-radius:10px}.notes-page-wrapper aside .notes-container::-webkit-scrollbar{width:6px}.notes-page-wrapper aside .notes-container::-webkit-scrollbar-thumb{border-radius:10px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.1);box-shadow:inset 0 0 6px rgba(0,0,0,.1);background:#a1a1aa}.notes-page-wrapper aside .notes-container .not-found-label{margin-top:25px;color:#f4f6f9;text-align:center}.notes-page-wrapper.active aside{width:325px}.notes-page-wrapper.active aside .top-panel{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.notes-page-wrapper.active aside .top-panel button{width:100%}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}} +.note-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:10px;background:rgba(27,39,53,.3);border-radius:15px;padding:15px 60px 40px 15px;width:100%;cursor:pointer;-webkit-transition:.5s;transition:.5s;position:relative}.note-container:hover{-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05)}.note-container h3{color:#f4f6f9}.note-container p{color:#a1a1aa}.note-container.selected{-webkit-box-shadow:0 0 3px #007fff,0 0 10px #007fff;box-shadow:0 0 3px #007fff,0 0 10px #007fff}.note-container .update-time{position:absolute;right:10px;bottom:10px;color:#a1a1aa} +.search{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:12px 16px;border-radius:28px;background:rgba(27,39,53,.3);z-index:1}.search .search-input{font-size:16px;color:#f4f6f9;outline:none;border:none;background:rgba(0,0,0,0);-webkit-box-flex:1;-ms-flex:1;flex:1}.search .search-input::-webkit-input-placeholder{color:#a1a1aa}.search .search-input::-moz-placeholder{color:#a1a1aa}.search .search-input:-ms-input-placeholder{color:#a1a1aa}.search .search-input::-ms-input-placeholder{color:#a1a1aa}.search .search-input::placeholder{color:#a1a1aa} +.note-editor{min-width:500px;border-radius:15px;background:rgba(27,39,53,.3);display:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:20px;gap:15px}.note-editor.active{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-animation:fadeIn 1s;animation:fadeIn 1s}.note-editor.active .close-editor-btn{display:block}.note-editor .top-panel{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.note-editor .top-panel .left-container{display:-webkit-box;display:-ms-flexbox;display:flex;gap:5px}.note-editor .top-panel .left-container .item{padding:4px;-webkit-transition:.3s;transition:.3s;cursor:pointer;border-radius:4px}.note-editor .top-panel .left-container .item .icon{width:18px;height:18px;-webkit-transition:.3s;transition:.3s;-webkit-filter:invert(80%);filter:invert(80%)}.note-editor .top-panel .left-container .item:hover{background:#333437}.note-editor .top-panel .left-container .item:hover .icon{-webkit-filter:invert(75%);filter:invert(75%)}.note-editor .top-panel .right-container{display:-webkit-box;display:-ms-flexbox;display:flex;gap:12px}.note-editor .top-panel .right-container .icon{width:24px;height:24px;cursor:pointer;-webkit-transition:.3s;transition:.3s;-webkit-filter:invert(80%);filter:invert(80%);opacity:.8}.note-editor .top-panel .right-container .icon:hover{opacity:1}.note-editor .bottom-panel{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:10px;height:100%}.note-editor .bottom-panel [contenteditable]{outline:none}.note-editor .bottom-panel .note-title-container{width:100%}.note-editor .bottom-panel .note-title-container .note-title{font-size:28px;color:#f4f6f9}.note-editor .bottom-panel .note-content{padding-right:10px;overflow-y:auto;height:100%}.note-editor .bottom-panel .note-content::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 4px rgba(0,0,0,.2);box-shadow:inset 0 0 4px rgba(0,0,0,.2);border-radius:10px}.note-editor .bottom-panel .note-content::-webkit-scrollbar{width:6px}.note-editor .bottom-panel .note-content::-webkit-scrollbar-thumb{border-radius:10px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.1);box-shadow:inset 0 0 6px rgba(0,0,0,.1);background:#a1a1aa}.note-editor .bottom-panel .note-content span{font-size:18px;color:#f4f6f9} +.modal-wrapper{position:fixed;top:-110vh;left:0;width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:top 0ms ease-in-out 300ms;transition:top 0ms ease-in-out 300ms;z-index:1000}.modal-wrapper.active{top:0;-webkit-transition:top 0ms ease-in-out 0ms;transition:top 0ms ease-in-out 0ms}.modal-wrapper.active .overlay{opacity:1}.modal-wrapper.active .modal-content{-webkit-animation:.3s superScaleIn ease-in-out;animation:.3s superScaleIn ease-in-out;opacity:1}.modal-wrapper .overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.4);opacity:0;-webkit-transition:all 300ms ease-in-out;transition:all 300ms ease-in-out}.modal-wrapper .modal-content{position:absolute;background:#1b2735;border-radius:20px;-webkit-box-shadow:0 2px 2px 5px rgba(0,0,0,.05);box-shadow:0 2px 2px 5px rgba(0,0,0,.05);opacity:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;overflow:hidden;padding:20px;gap:15px;max-width:400px;-webkit-animation:.3s scaleOut ease-in-out;animation:.3s scaleOut ease-in-out}@-webkit-keyframes superScaleIn{0%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:0}100%{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes superScaleIn{0%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:0}100%{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes scaleOut{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}100%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:0}}@keyframes scaleOut{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}100%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:0}}.modal-wrapper .modal-content h2{color:#f4f6f9}.modal-wrapper .modal-content span{color:#f4f6f9;text-align:center}.modal-wrapper .modal-content .buttons-container{display:-webkit-box;display:-ms-flexbox;display:flex;gap:10px}.modal-wrapper .modal-content .buttons-container .cancel-btn{background:#a1a1aa}.modal-wrapper .modal-content .close-modal-btn{position:absolute;top:16px;right:16px;width:24px;height:24px;cursor:pointer;-webkit-filter:invert(80%);filter:invert(80%);-webkit-transition:.3s;transition:.3s;opacity:.8}.modal-wrapper .modal-content .close-modal-btn:hover{opacity:1} +header{width:100%;padding:0 15%;height:60px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:fixed;-webkit-transition:.5s;transition:.5s;z-index:1000;background:-webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.2)), to(rgba(0, 0, 0, 0)));background:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0))} +.logo-wrapper{cursor:pointer}.logo-wrapper img{width:36px;height:36px;-webkit-transition:.3s;transition:.3s}.logo-wrapper img:hover{-webkit-transform:rotate(15deg);-ms-transform:rotate(15deg);transform:rotate(15deg)} +.user-profile-wrapper{position:relative}.user-profile-wrapper .toggle-profile-button{font-size:0;width:42px;height:42px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:50%;padding:14px 10px;position:relative;cursor:pointer;background:#1b2735;z-index:10}.user-profile-wrapper .toggle-profile-button:hover .slider:before{left:30%}.user-profile-wrapper .toggle-profile-button:hover .slider.two:before{left:70%}.user-profile-wrapper .toggle-profile-button:hover .slider.three:before{left:30%}.user-profile-wrapper .toggle-profile-button .slider{width:22px;border-radius:4px;height:2px;background:#fff;position:absolute;-webkit-transform-origin:2px 2px;-ms-transform-origin:2px 2px;transform-origin:2px 2px;-webkit-transition:all 500ms cubic-bezier(0, 1, 0, 1);transition:all 500ms cubic-bezier(0, 1, 0, 1)}.user-profile-wrapper .toggle-profile-button .slider.two{margin-top:6px}.user-profile-wrapper .toggle-profile-button .slider.two:before{left:30%;-webkit-transition-delay:55ms;transition-delay:55ms}.user-profile-wrapper .toggle-profile-button .slider.three{margin-top:12px}.user-profile-wrapper .toggle-profile-button .slider.three:before{left:70%;-webkit-transition-delay:110ms;transition-delay:110ms}.user-profile-wrapper .toggle-profile-button .slider:before{width:6px;height:6px;margin-top:-2px;margin-left:-3px;border-radius:999px;background:#fff;display:inline-block;content:"";position:absolute;left:70%;-webkit-transition:left 140ms cubic-bezier(0, 2, 1, 1);transition:left 140ms cubic-bezier(0, 2, 1, 1)}.user-profile-wrapper.open .toggle-profile-button .one{-webkit-transform:translate3d(4px, 1px, 0) rotate(45deg);transform:translate3d(4px, 1px, 0) rotate(45deg);width:18px}.user-profile-wrapper.open .toggle-profile-button .three{-webkit-transform:translate3d(5px, -1px, 0) rotate(-45deg);transform:translate3d(5px, -1px, 0) rotate(-45deg);width:18px}.user-profile-wrapper.open .toggle-profile-button .two{width:0;display:none}.user-profile-wrapper.open .toggle-profile-button .slider:before{width:0;height:0}.user-profile-wrapper .panel{height:42px;width:42px;position:absolute;top:0;right:0;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:all .5s;transition:all .5s;border-radius:50%;-webkit-box-shadow:rgba(0,0,0,.35) 0 5px 15px;box-shadow:rgba(0,0,0,.35) 0 5px 15px;background:#1b2735}.user-profile-wrapper .panel .popup-content{height:100%;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:15px;-webkit-transition:all .5s;transition:all .5s;position:absolute;right:0;overflow:hidden}.user-profile-wrapper .panel .popup-content .user-avatar-container{width:100px;height:100px}.user-profile-wrapper .panel .popup-content .user-avatar-container{width:100px;height:100px;position:relative;border-radius:50%}.user-profile-wrapper .panel .popup-content .user-avatar-container:hover .upload-preview{opacity:1}.user-profile-wrapper .panel .popup-content .user-avatar-container .user-avatar{width:100px;height:100px;border-radius:50%}.user-profile-wrapper .panel .popup-content .user-avatar-container .user-avatar.loading{display:none}.user-profile-wrapper .panel .popup-content .user-avatar-container .upload-preview{position:absolute;top:0;right:0;width:100%;height:100%;border-radius:50%;background:rgba(0,0,0,.8);opacity:0;cursor:pointer;-webkit-transition:.3s;transition:.3s;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.user-profile-wrapper .panel .popup-content .user-avatar-container .upload-preview label{z-index:100;width:100%;height:100%;position:absolute;top:0;right:0;border-radius:50%;cursor:pointer}.user-profile-wrapper .panel .popup-content .user-avatar-container .upload-preview .upload-preview-icon{width:32px;height:32px;-webkit-filter:invert(80%);filter:invert(80%)}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper{width:100px;height:100px;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:1s;transition:1s;position:absolute;top:0;right:0;z-index:100}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .inner{position:absolute;width:80px;height:80px;background:#1b2735;border-radius:50%;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);transform:translate(-50%, -50%);z-index:2;-webkit-transition:1s ease;transition:1s ease;-webkit-transition-delay:1.5s;transition-delay:1.5s}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .circle .bar{position:absolute;width:100%;height:100%;background:#ddd;border-radius:50%;clip:rect(0px, 100px, 100px, 50px)}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .circle .bar .progress{position:absolute;width:100%;height:100%;background:#3d559d;border-radius:50%;clip:rect(0px, 50px, 100px, 0px);z-index:1}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .circle .left .progress{-webkit-transition:.5s linear;transition:.5s linear;-webkit-transition-delay:.5s;transition-delay:.5s}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .circle .right{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .circle .right .progress{-webkit-transition:.5s linear;transition:.5s linear;-webkit-transition-delay:1s;transition-delay:1s}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .checkmark{position:absolute;width:100%;height:100%;border-radius:50%;z-index:2}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .checkmark span{position:absolute;display:block;width:30px;height:7px;background:#fff;border-radius:5px;-webkit-transform-origin:left;-ms-transform-origin:left;transform-origin:left;-webkit-transition:.25s;transition:.25s}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .checkmark span:first-child{top:45px;left:22px;width:30px;-webkit-transform:rotate(45deg) scaleX(0);-ms-transform:rotate(45deg) scaleX(0);transform:rotate(45deg) scaleX(0);-webkit-transition-delay:2.5s;transition-delay:2.5s}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper .checkmark span:last-child{top:65px;left:40px;width:50px;-webkit-transform:rotate(-45deg) scaleX(0);-ms-transform:rotate(-45deg) scaleX(0);transform:rotate(-45deg) scaleX(0);-webkit-transition-delay:2.75s;transition-delay:2.75s}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper.active{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper.active .inner{-webkit-transform:translate(-50%, -50%) scale(0);-ms-transform:translate(-50%, -50%) scale(0);transform:translate(-50%, -50%) scale(0)}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper.active .circle .left .progress{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper.active .circle .right .progress{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper.active .checkmark span:first-child{-webkit-transform:rotate(45deg) scaleX(1);-ms-transform:rotate(45deg) scaleX(1);transform:rotate(45deg) scaleX(1)}.user-profile-wrapper .panel .popup-content .user-avatar-container .progress-wrapper.active .checkmark span:last-child{-webkit-transform:rotate(-45deg) scaleX(1);-ms-transform:rotate(-45deg) scaleX(1);transform:rotate(-45deg) scaleX(1)}.user-profile-wrapper .panel .popup-content .username{color:#fff;font-weight:700;font-size:22px}.user-profile-wrapper .panel .popup-content .change-password-btn{width:200px;text-align:center;color:#007fff;cursor:pointer;-webkit-transition:.3s;transition:.3s}.user-profile-wrapper .panel .popup-content .change-password-btn:hover{color:#1e59f1}.user-profile-wrapper .panel .popup-content .logout-btn{width:140px;background:#fff;color:#333437}.user-profile-wrapper.open .panel{height:300px;width:200px;border-radius:25px} .modal-wrapper .change-password-form{padding:40px}.modal-wrapper .change-password-form h2{margin-bottom:10px}.modal-wrapper .change-password-form .button{font-size:22px} -.background{width:100%;height:100%;position:fixed;top:0;left:0;display:grid;grid-template-areas:"stack";overflow:hidden}.background .parallax-bg{z-index:-2;min-height:100%;width:100%;grid-area:stack;background:radial-gradient(ellipse at bottom, #1b2735 0%, #090a0f 100%)}.background #stars{grid-area:stack;width:1px;height:1px;background:rgba(0,0,0,0);box-shadow:779px 1331px #fff,324px 42px #fff,303px 586px #fff,1312px 276px #fff,451px 625px #fff,521px 1931px #fff,1087px 1871px #fff,36px 1546px #fff,132px 934px #fff,1698px 901px #fff,1418px 664px #fff,1448px 1157px #fff,1084px 232px #fff,347px 1776px #fff,1722px 243px #fff,1629px 835px #fff,479px 969px #fff,1231px 960px #fff,586px 384px #fff,164px 527px #fff,8px 646px #fff,1150px 1126px #fff,665px 1357px #fff,1556px 1982px #fff,1260px 1961px #fff,1675px 1741px #fff,1843px 1514px #fff,718px 1628px #fff,242px 1343px #fff,1497px 1880px #fff,1364px 230px #fff,1739px 1302px #fff,636px 959px #fff,304px 686px #fff,614px 751px #fff,1935px 816px #fff,1428px 60px #fff,355px 335px #fff,1594px 158px #fff,90px 60px #fff,1553px 162px #fff,1239px 1825px #fff,1945px 587px #fff,749px 1785px #fff,1987px 1172px #fff,1301px 1237px #fff,1039px 342px #fff,1585px 1481px #fff,995px 1048px #fff,524px 932px #fff,214px 413px #fff,1701px 1300px #fff,1037px 1613px #fff,1871px 996px #fff,1360px 1635px #fff,1110px 1313px #fff,412px 1783px #fff,1949px 177px #fff,903px 1854px #fff,700px 1936px #fff,378px 125px #fff,308px 834px #fff,1118px 962px #fff,1350px 1929px #fff,781px 1811px #fff,561px 137px #fff,757px 1148px #fff,1670px 1979px #fff,343px 739px #fff,945px 795px #fff,576px 1903px #fff,1078px 1436px #fff,1583px 450px #fff,1366px 474px #fff,297px 1873px #fff,192px 162px #fff,1624px 1633px #fff,59px 453px #fff,82px 1872px #fff,1933px 498px #fff,1966px 1974px #fff,1975px 1688px #fff,779px 314px #fff,1858px 1543px #fff,73px 1507px #fff,1693px 975px #fff,1683px 108px #fff,1768px 1654px #fff,654px 14px #fff,494px 171px #fff,1689px 1895px #fff,1660px 263px #fff,1031px 903px #fff,1203px 1393px #fff,1333px 1421px #fff,1113px 41px #fff,1206px 1645px #fff,1325px 1635px #fff,142px 388px #fff,572px 215px #fff,1535px 296px #fff,1419px 407px #fff,1379px 1003px #fff,329px 469px #fff,1791px 1652px #fff,935px 1802px #fff,1330px 1820px #fff,421px 1933px #fff,828px 365px #fff,275px 316px #fff,707px 960px #fff,1605px 1554px #fff,625px 58px #fff,717px 1697px #fff,1669px 246px #fff,1925px 322px #fff,1154px 1803px #fff,1929px 295px #fff,1248px 240px #fff,1045px 1755px #fff,166px 942px #fff,1888px 1773px #fff,678px 1963px #fff,1370px 569px #fff,1974px 1400px #fff,1786px 460px #fff,51px 307px #fff,784px 1400px #fff,730px 1258px #fff,1712px 393px #fff,416px 170px #fff,1797px 1932px #fff,572px 219px #fff,1557px 1856px #fff,218px 8px #fff,348px 1334px #fff,469px 413px #fff,385px 1738px #fff,1357px 1818px #fff,240px 942px #fff,248px 1847px #fff,1535px 806px #fff,236px 1514px #fff,1429px 1556px #fff,73px 1633px #fff,1398px 1121px #fff,671px 1301px #fff,1404px 1663px #fff,740px 1018px #fff,1600px 377px #fff,785px 514px #fff,112px 1084px #fff,1915px 1887px #fff,1463px 1848px #fff,687px 1115px #fff,1268px 1768px #fff,1729px 1425px #fff,1284px 1022px #fff,801px 974px #fff,1975px 1317px #fff,1354px 834px #fff,1446px 1484px #fff,1283px 1786px #fff,11px 523px #fff,1842px 236px #fff,1355px 654px #fff,429px 7px #fff,1033px 1128px #fff,157px 297px #fff,545px 635px #fff,52px 1080px #fff,827px 1520px #fff,1121px 490px #fff,9px 309px #fff,1744px 1586px #fff,1014px 417px #fff,1534px 524px #fff,958px 552px #fff,1403px 1496px #fff,387px 703px #fff,1522px 548px #fff,1355px 282px #fff,1532px 601px #fff,1838px 790px #fff,290px 259px #fff,295px 598px #fff,1601px 539px #fff,1561px 1272px #fff,34px 1922px #fff,1024px 543px #fff,467px 369px #fff,722px 333px #fff,1976px 1255px #fff,766px 983px #fff,1582px 1285px #fff,12px 512px #fff,617px 1410px #fff,682px 577px #fff,1334px 1438px #fff,439px 327px #fff,1617px 1661px #fff,673px 129px #fff,794px 941px #fff,1386px 1902px #fff,37px 1353px #fff,1467px 1353px #fff,416px 18px #fff,187px 344px #fff,200px 1898px #fff,1491px 1619px #fff,811px 347px #fff,924px 1827px #fff,945px 217px #fff,1735px 1228px #fff,379px 1890px #fff,79px 761px #fff,825px 1837px #fff,1980px 1558px #fff,1308px 1573px #fff,1488px 1726px #fff,382px 1208px #fff,522px 595px #fff,1277px 1898px #fff,354px 552px #fff,161px 1784px #fff,614px 251px #fff,526px 1576px #fff,17px 212px #fff,179px 996px #fff,467px 1208px #fff,1944px 1838px #fff,1140px 1093px #fff,858px 1007px #fff,200px 1064px #fff,423px 1964px #fff,1945px 439px #fff,1377px 689px #fff,1120px 1437px #fff,1876px 668px #fff,907px 1324px #fff,343px 1976px #fff,1816px 1501px #fff,1849px 177px #fff,647px 91px #fff,1984px 1012px #fff,1336px 1300px #fff,128px 648px #fff,305px 1060px #fff,1324px 826px #fff,1263px 1314px #fff,1801px 629px #fff,1614px 1555px #fff,1634px 90px #fff,1603px 452px #fff,891px 1984px #fff,1556px 1906px #fff,121px 68px #fff,1676px 1714px #fff,516px 936px #fff,1947px 1492px #fff,1455px 1519px #fff,45px 602px #fff,205px 1039px #fff,793px 172px #fff,1562px 1739px #fff,1056px 110px #fff,1512px 379px #fff,1795px 1621px #fff,1848px 607px #fff,262px 1719px #fff,477px 991px #fff,483px 883px #fff,1239px 1197px #fff,1496px 647px #fff,1649px 25px #fff,1491px 1946px #fff,119px 996px #fff,179px 1472px #fff,1341px 808px #fff,1565px 1700px #fff,407px 1544px #fff,1754px 357px #fff,1288px 981px #fff,902px 1997px #fff,1755px 1668px #fff,186px 877px #fff,1202px 1882px #fff,461px 1213px #fff,1400px 748px #fff,1969px 1899px #fff,809px 522px #fff,514px 1219px #fff,374px 275px #fff,938px 1973px #fff,357px 552px #fff,144px 1722px #fff,1572px 912px #fff,402px 1858px #fff,1544px 1195px #fff,667px 1257px #fff,727px 1496px #fff,993px 232px #fff,1772px 313px #fff,1040px 1590px #fff,1204px 1973px #fff,1268px 79px #fff,1555px 1048px #fff,986px 1707px #fff,978px 1710px #fff,713px 360px #fff,407px 863px #fff,461px 736px #fff,284px 1608px #fff,103px 430px #fff,1283px 1319px #fff,977px 1186px #fff,1966px 1516px #fff,1287px 1129px #fff,70px 1098px #fff,1189px 889px #fff,1126px 1734px #fff,309px 1292px #fff,879px 764px #fff,65px 473px #fff,1003px 1959px #fff,658px 791px #fff,402px 1576px #fff,35px 622px #fff,529px 1589px #fff,164px 666px #fff,1876px 1290px #fff,1541px 526px #fff,270px 1297px #fff,440px 865px #fff,1500px 802px #fff,182px 1754px #fff,1264px 892px #fff,272px 1249px #fff,1289px 1535px #fff,190px 1646px #fff,955px 242px #fff,1456px 1597px #fff,1727px 1983px #fff,635px 801px #fff,226px 455px #fff,1396px 1710px #fff,849px 1863px #fff,237px 1264px #fff,839px 140px #fff,1122px 735px #fff,1280px 15px #fff,1318px 242px #fff,1819px 1148px #fff,333px 1392px #fff,1949px 553px #fff,1878px 1332px #fff,467px 548px #fff,1812px 1082px #fff,1067px 193px #fff,243px 156px #fff,483px 1616px #fff,1714px 933px #fff,759px 1800px #fff,1822px 995px #fff,1877px 572px #fff,581px 1084px #fff,107px 732px #fff,642px 1837px #fff,166px 1493px #fff,1555px 198px #fff,819px 307px #fff,947px 345px #fff,827px 224px #fff,927px 1394px #fff,540px 467px #fff,1093px 405px #fff,1140px 927px #fff,130px 529px #fff,33px 1980px #fff,1147px 1663px #fff,1616px 1436px #fff,528px 710px #fff,798px 1100px #fff,505px 1480px #fff,899px 641px #fff,1909px 1949px #fff,1311px 964px #fff,979px 1301px #fff,1393px 969px #fff,1793px 1886px #fff,292px 357px #fff,1196px 1718px #fff,1290px 1994px #fff,537px 1973px #fff,1181px 1674px #fff,1740px 1566px #fff,1307px 265px #fff,922px 522px #fff,1892px 472px #fff,384px 1746px #fff,392px 1098px #fff,647px 548px #fff,390px 1498px #fff,1246px 138px #fff,730px 876px #fff,192px 1472px #fff,1790px 1789px #fff,928px 311px #fff,1253px 1647px #fff,747px 1921px #fff,1561px 1025px #fff,1533px 1292px #fff,1985px 195px #fff,728px 729px #fff,1712px 1936px #fff,512px 1717px #fff,1528px 483px #fff,313px 1642px #fff,281px 1849px #fff,1212px 799px #fff,435px 1191px #fff,1422px 611px #fff,1718px 1964px #fff,411px 944px #fff,210px 636px #fff,1502px 1295px #fff,1434px 349px #fff,769px 60px #fff,747px 1053px #fff,789px 504px #fff,1436px 1264px #fff,1893px 1225px #fff,1394px 1788px #fff,1108px 1317px #fff,1673px 1395px #fff,854px 1010px #fff,1705px 80px #fff,1858px 148px #fff,1729px 344px #fff,1388px 664px #fff,895px 406px #fff,1479px 157px #fff,1441px 1157px #fff,552px 1900px #fff,516px 364px #fff,1647px 189px #fff,1427px 1071px #fff,785px 729px #fff,1080px 1710px #fff,504px 204px #fff,1177px 1622px #fff,657px 34px #fff,1296px 1099px #fff,248px 180px #fff,1212px 1568px #fff,667px 1562px #fff,695px 841px #fff,1608px 1247px #fff,751px 882px #fff,87px 167px #fff,607px 1368px #fff,1363px 1203px #fff,1836px 317px #fff,1668px 1703px #fff,830px 1154px #fff,1721px 1398px #fff,1601px 1280px #fff,976px 874px #fff,1743px 254px #fff,1020px 1815px #fff,1670px 1766px #fff,1890px 735px #fff,1379px 136px #fff,1864px 695px #fff,206px 965px #fff,1404px 1932px #fff,1923px 1360px #fff,247px 682px #fff,519px 1708px #fff,645px 750px #fff,1164px 1204px #fff,834px 323px #fff,172px 1350px #fff,213px 972px #fff,1837px 190px #fff,285px 1806px #fff,1047px 1299px #fff,1548px 825px #fff,1730px 324px #fff,1346px 1909px #fff,772px 270px #fff,345px 1190px #fff,478px 1433px #fff,1479px 25px #fff,1994px 1830px #fff,1744px 732px #fff,20px 1635px #fff,690px 1795px #fff,1594px 569px #fff,579px 245px #fff,1398px 733px #fff,408px 1352px #fff,1774px 120px #fff,1152px 1370px #fff,1698px 1810px #fff,710px 1450px #fff,665px 286px #fff,493px 1720px #fff,786px 5px #fff,637px 1140px #fff,764px 324px #fff,927px 310px #fff,938px 1424px #fff,1884px 744px #fff,913px 462px #fff,1831px 1936px #fff,1527px 249px #fff,36px 1381px #fff,1597px 581px #fff,1530px 355px #fff,949px 459px #fff,799px 828px #fff,242px 1471px #fff,654px 797px #fff,796px 594px #fff,1365px 678px #fff,752px 23px #fff,1630px 541px #fff,982px 72px #fff,1733px 1831px #fff,21px 412px #fff,775px 998px #fff,335px 1945px #fff,264px 583px #fff,158px 1311px #fff,528px 164px #fff,1978px 574px #fff,717px 1203px #fff,734px 1591px #fff,1555px 820px #fff,16px 1943px #fff,1625px 1177px #fff,1236px 690px #fff,1585px 1590px #fff,1737px 1728px #fff,721px 698px #fff,1804px 1186px #fff,166px 980px #fff,1850px 230px #fff,330px 1712px #fff,95px 797px #fff,1948px 1078px #fff,469px 939px #fff,1269px 1899px #fff,955px 1220px #fff,1137px 1075px #fff,312px 1293px #fff,986px 1762px #fff,1103px 1238px #fff,428px 1993px #fff,355px 570px #fff,977px 1836px #fff,1395px 1092px #fff,276px 913px #fff,1743px 656px #fff,773px 502px #fff,1686px 1322px #fff,1516px 1945px #fff,1334px 501px #fff,266px 156px #fff,455px 655px #fff,798px 72px #fff,1059px 1259px #fff,1402px 1687px #fff,236px 1329px #fff,1455px 786px #fff,146px 1228px #fff,1851px 823px #fff,1062px 100px #fff,1220px 953px #fff,20px 1826px #fff,36px 1063px #fff,1525px 338px #fff,790px 1521px #fff,741px 1099px #fff,288px 1489px #fff,700px 1060px #fff,390px 1071px #fff,411px 1036px #fff,1853px 1072px #fff,1446px 1085px #fff,1164px 874px #fff,924px 925px #fff,291px 271px #fff,1257px 1964px #fff,1580px 1352px #fff,1507px 1216px #fff,211px 956px #fff,985px 1195px #fff,975px 1640px #fff,518px 101px #fff,663px 1395px #fff,914px 532px #fff,145px 1320px #fff,69px 1397px #fff,982px 523px #fff,257px 725px #fff,1599px 831px #fff,1636px 1513px #fff,1250px 1158px #fff,1132px 604px #fff,183px 102px #fff,1057px 318px #fff,1247px 1835px #fff,1983px 1110px #fff,1077px 1455px #fff,921px 1770px #fff,806px 1350px #fff,1938px 1992px #fff,855px 1260px #fff,902px 1345px #fff,658px 1908px #fff,1845px 679px #fff,712px 1482px #fff,595px 950px #fff,1784px 1992px #fff,1847px 1785px #fff,691px 1004px #fff,175px 1179px #fff,1666px 1911px #fff,41px 61px #fff,971px 1080px #fff,1830px 1450px #fff,1351px 1518px #fff,1257px 99px #fff,1395px 1498px #fff,1117px 252px #fff,1779px 597px #fff,1346px 729px #fff,1108px 1144px #fff,402px 691px #fff,72px 496px #fff,1673px 1604px #fff,1497px 974px #fff,1865px 1664px #fff,88px 806px #fff,918px 77px #fff,244px 1118px #fff,256px 1820px #fff,1851px 1840px #fff,605px 1851px #fff,634px 383px #fff,865px 37px #fff,943px 1024px #fff,1951px 177px #fff,1097px 523px #fff,985px 1700px #fff,1243px 122px #fff,768px 1070px #fff,468px 194px #fff,320px 1867px #fff,1850px 185px #fff,380px 1616px #fff,468px 1294px #fff,1122px 1743px #fff,884px 299px #fff,1300px 1917px #fff,1860px 396px #fff,1270px 990px #fff,529px 733px #fff,1975px 1347px #fff,1885px 685px #fff,226px 506px #fff,651px 878px #fff,1323px 680px #fff,1284px 680px #fff,238px 1967px #fff,911px 174px #fff,1111px 521px #fff,1150px 85px #fff,794px 502px #fff,484px 1856px #fff,1809px 368px #fff,112px 953px #fff,590px 1009px #fff,1655px 311px #fff,100px 1026px #fff,1803px 352px #fff,865px 306px #fff,1077px 1019px #fff,1335px 872px #fff,1647px 1298px #fff,1233px 1387px #fff,698px 1036px #fff,659px 1860px #fff,388px 1412px #fff,1212px 458px #fff,755px 1468px #fff,696px 1654px #fff,1144px 60px #fff;background:radial-gradient(ellipse at bottom, #1b2735 0%, #090a0f 100%)}.background #stars:after{content:"";position:absolute;top:2000px;width:1px;height:1px;background:rgba(0,0,0,0);box-shadow:779px 1331px #fff,324px 42px #fff,303px 586px #fff,1312px 276px #fff,451px 625px #fff,521px 1931px #fff,1087px 1871px #fff,36px 1546px #fff,132px 934px #fff,1698px 901px #fff,1418px 664px #fff,1448px 1157px #fff,1084px 232px #fff,347px 1776px #fff,1722px 243px #fff,1629px 835px #fff,479px 969px #fff,1231px 960px #fff,586px 384px #fff,164px 527px #fff,8px 646px #fff,1150px 1126px #fff,665px 1357px #fff,1556px 1982px #fff,1260px 1961px #fff,1675px 1741px #fff,1843px 1514px #fff,718px 1628px #fff,242px 1343px #fff,1497px 1880px #fff,1364px 230px #fff,1739px 1302px #fff,636px 959px #fff,304px 686px #fff,614px 751px #fff,1935px 816px #fff,1428px 60px #fff,355px 335px #fff,1594px 158px #fff,90px 60px #fff,1553px 162px #fff,1239px 1825px #fff,1945px 587px #fff,749px 1785px #fff,1987px 1172px #fff,1301px 1237px #fff,1039px 342px #fff,1585px 1481px #fff,995px 1048px #fff,524px 932px #fff,214px 413px #fff,1701px 1300px #fff,1037px 1613px #fff,1871px 996px #fff,1360px 1635px #fff,1110px 1313px #fff,412px 1783px #fff,1949px 177px #fff,903px 1854px #fff,700px 1936px #fff,378px 125px #fff,308px 834px #fff,1118px 962px #fff,1350px 1929px #fff,781px 1811px #fff,561px 137px #fff,757px 1148px #fff,1670px 1979px #fff,343px 739px #fff,945px 795px #fff,576px 1903px #fff,1078px 1436px #fff,1583px 450px #fff,1366px 474px #fff,297px 1873px #fff,192px 162px #fff,1624px 1633px #fff,59px 453px #fff,82px 1872px #fff,1933px 498px #fff,1966px 1974px #fff,1975px 1688px #fff,779px 314px #fff,1858px 1543px #fff,73px 1507px #fff,1693px 975px #fff,1683px 108px #fff,1768px 1654px #fff,654px 14px #fff,494px 171px #fff,1689px 1895px #fff,1660px 263px #fff,1031px 903px #fff,1203px 1393px #fff,1333px 1421px #fff,1113px 41px #fff,1206px 1645px #fff,1325px 1635px #fff,142px 388px #fff,572px 215px #fff,1535px 296px #fff,1419px 407px #fff,1379px 1003px #fff,329px 469px #fff,1791px 1652px #fff,935px 1802px #fff,1330px 1820px #fff,421px 1933px #fff,828px 365px #fff,275px 316px #fff,707px 960px #fff,1605px 1554px #fff,625px 58px #fff,717px 1697px #fff,1669px 246px #fff,1925px 322px #fff,1154px 1803px #fff,1929px 295px #fff,1248px 240px #fff,1045px 1755px #fff,166px 942px #fff,1888px 1773px #fff,678px 1963px #fff,1370px 569px #fff,1974px 1400px #fff,1786px 460px #fff,51px 307px #fff,784px 1400px #fff,730px 1258px #fff,1712px 393px #fff,416px 170px #fff,1797px 1932px #fff,572px 219px #fff,1557px 1856px #fff,218px 8px #fff,348px 1334px #fff,469px 413px #fff,385px 1738px #fff,1357px 1818px #fff,240px 942px #fff,248px 1847px #fff,1535px 806px #fff,236px 1514px #fff,1429px 1556px #fff,73px 1633px #fff,1398px 1121px #fff,671px 1301px #fff,1404px 1663px #fff,740px 1018px #fff,1600px 377px #fff,785px 514px #fff,112px 1084px #fff,1915px 1887px #fff,1463px 1848px #fff,687px 1115px #fff,1268px 1768px #fff,1729px 1425px #fff,1284px 1022px #fff,801px 974px #fff,1975px 1317px #fff,1354px 834px #fff,1446px 1484px #fff,1283px 1786px #fff,11px 523px #fff,1842px 236px #fff,1355px 654px #fff,429px 7px #fff,1033px 1128px #fff,157px 297px #fff,545px 635px #fff,52px 1080px #fff,827px 1520px #fff,1121px 490px #fff,9px 309px #fff,1744px 1586px #fff,1014px 417px #fff,1534px 524px #fff,958px 552px #fff,1403px 1496px #fff,387px 703px #fff,1522px 548px #fff,1355px 282px #fff,1532px 601px #fff,1838px 790px #fff,290px 259px #fff,295px 598px #fff,1601px 539px #fff,1561px 1272px #fff,34px 1922px #fff,1024px 543px #fff,467px 369px #fff,722px 333px #fff,1976px 1255px #fff,766px 983px #fff,1582px 1285px #fff,12px 512px #fff,617px 1410px #fff,682px 577px #fff,1334px 1438px #fff,439px 327px #fff,1617px 1661px #fff,673px 129px #fff,794px 941px #fff,1386px 1902px #fff,37px 1353px #fff,1467px 1353px #fff,416px 18px #fff,187px 344px #fff,200px 1898px #fff,1491px 1619px #fff,811px 347px #fff,924px 1827px #fff,945px 217px #fff,1735px 1228px #fff,379px 1890px #fff,79px 761px #fff,825px 1837px #fff,1980px 1558px #fff,1308px 1573px #fff,1488px 1726px #fff,382px 1208px #fff,522px 595px #fff,1277px 1898px #fff,354px 552px #fff,161px 1784px #fff,614px 251px #fff,526px 1576px #fff,17px 212px #fff,179px 996px #fff,467px 1208px #fff,1944px 1838px #fff,1140px 1093px #fff,858px 1007px #fff,200px 1064px #fff,423px 1964px #fff,1945px 439px #fff,1377px 689px #fff,1120px 1437px #fff,1876px 668px #fff,907px 1324px #fff,343px 1976px #fff,1816px 1501px #fff,1849px 177px #fff,647px 91px #fff,1984px 1012px #fff,1336px 1300px #fff,128px 648px #fff,305px 1060px #fff,1324px 826px #fff,1263px 1314px #fff,1801px 629px #fff,1614px 1555px #fff,1634px 90px #fff,1603px 452px #fff,891px 1984px #fff,1556px 1906px #fff,121px 68px #fff,1676px 1714px #fff,516px 936px #fff,1947px 1492px #fff,1455px 1519px #fff,45px 602px #fff,205px 1039px #fff,793px 172px #fff,1562px 1739px #fff,1056px 110px #fff,1512px 379px #fff,1795px 1621px #fff,1848px 607px #fff,262px 1719px #fff,477px 991px #fff,483px 883px #fff,1239px 1197px #fff,1496px 647px #fff,1649px 25px #fff,1491px 1946px #fff,119px 996px #fff,179px 1472px #fff,1341px 808px #fff,1565px 1700px #fff,407px 1544px #fff,1754px 357px #fff,1288px 981px #fff,902px 1997px #fff,1755px 1668px #fff,186px 877px #fff,1202px 1882px #fff,461px 1213px #fff,1400px 748px #fff,1969px 1899px #fff,809px 522px #fff,514px 1219px #fff,374px 275px #fff,938px 1973px #fff,357px 552px #fff,144px 1722px #fff,1572px 912px #fff,402px 1858px #fff,1544px 1195px #fff,667px 1257px #fff,727px 1496px #fff,993px 232px #fff,1772px 313px #fff,1040px 1590px #fff,1204px 1973px #fff,1268px 79px #fff,1555px 1048px #fff,986px 1707px #fff,978px 1710px #fff,713px 360px #fff,407px 863px #fff,461px 736px #fff,284px 1608px #fff,103px 430px #fff,1283px 1319px #fff,977px 1186px #fff,1966px 1516px #fff,1287px 1129px #fff,70px 1098px #fff,1189px 889px #fff,1126px 1734px #fff,309px 1292px #fff,879px 764px #fff,65px 473px #fff,1003px 1959px #fff,658px 791px #fff,402px 1576px #fff,35px 622px #fff,529px 1589px #fff,164px 666px #fff,1876px 1290px #fff,1541px 526px #fff,270px 1297px #fff,440px 865px #fff,1500px 802px #fff,182px 1754px #fff,1264px 892px #fff,272px 1249px #fff,1289px 1535px #fff,190px 1646px #fff,955px 242px #fff,1456px 1597px #fff,1727px 1983px #fff,635px 801px #fff,226px 455px #fff,1396px 1710px #fff,849px 1863px #fff,237px 1264px #fff,839px 140px #fff,1122px 735px #fff,1280px 15px #fff,1318px 242px #fff,1819px 1148px #fff,333px 1392px #fff,1949px 553px #fff,1878px 1332px #fff,467px 548px #fff,1812px 1082px #fff,1067px 193px #fff,243px 156px #fff,483px 1616px #fff,1714px 933px #fff,759px 1800px #fff,1822px 995px #fff,1877px 572px #fff,581px 1084px #fff,107px 732px #fff,642px 1837px #fff,166px 1493px #fff,1555px 198px #fff,819px 307px #fff,947px 345px #fff,827px 224px #fff,927px 1394px #fff,540px 467px #fff,1093px 405px #fff,1140px 927px #fff,130px 529px #fff,33px 1980px #fff,1147px 1663px #fff,1616px 1436px #fff,528px 710px #fff,798px 1100px #fff,505px 1480px #fff,899px 641px #fff,1909px 1949px #fff,1311px 964px #fff,979px 1301px #fff,1393px 969px #fff,1793px 1886px #fff,292px 357px #fff,1196px 1718px #fff,1290px 1994px #fff,537px 1973px #fff,1181px 1674px #fff,1740px 1566px #fff,1307px 265px #fff,922px 522px #fff,1892px 472px #fff,384px 1746px #fff,392px 1098px #fff,647px 548px #fff,390px 1498px #fff,1246px 138px #fff,730px 876px #fff,192px 1472px #fff,1790px 1789px #fff,928px 311px #fff,1253px 1647px #fff,747px 1921px #fff,1561px 1025px #fff,1533px 1292px #fff,1985px 195px #fff,728px 729px #fff,1712px 1936px #fff,512px 1717px #fff,1528px 483px #fff,313px 1642px #fff,281px 1849px #fff,1212px 799px #fff,435px 1191px #fff,1422px 611px #fff,1718px 1964px #fff,411px 944px #fff,210px 636px #fff,1502px 1295px #fff,1434px 349px #fff,769px 60px #fff,747px 1053px #fff,789px 504px #fff,1436px 1264px #fff,1893px 1225px #fff,1394px 1788px #fff,1108px 1317px #fff,1673px 1395px #fff,854px 1010px #fff,1705px 80px #fff,1858px 148px #fff,1729px 344px #fff,1388px 664px #fff,895px 406px #fff,1479px 157px #fff,1441px 1157px #fff,552px 1900px #fff,516px 364px #fff,1647px 189px #fff,1427px 1071px #fff,785px 729px #fff,1080px 1710px #fff,504px 204px #fff,1177px 1622px #fff,657px 34px #fff,1296px 1099px #fff,248px 180px #fff,1212px 1568px #fff,667px 1562px #fff,695px 841px #fff,1608px 1247px #fff,751px 882px #fff,87px 167px #fff,607px 1368px #fff,1363px 1203px #fff,1836px 317px #fff,1668px 1703px #fff,830px 1154px #fff,1721px 1398px #fff,1601px 1280px #fff,976px 874px #fff,1743px 254px #fff,1020px 1815px #fff,1670px 1766px #fff,1890px 735px #fff,1379px 136px #fff,1864px 695px #fff,206px 965px #fff,1404px 1932px #fff,1923px 1360px #fff,247px 682px #fff,519px 1708px #fff,645px 750px #fff,1164px 1204px #fff,834px 323px #fff,172px 1350px #fff,213px 972px #fff,1837px 190px #fff,285px 1806px #fff,1047px 1299px #fff,1548px 825px #fff,1730px 324px #fff,1346px 1909px #fff,772px 270px #fff,345px 1190px #fff,478px 1433px #fff,1479px 25px #fff,1994px 1830px #fff,1744px 732px #fff,20px 1635px #fff,690px 1795px #fff,1594px 569px #fff,579px 245px #fff,1398px 733px #fff,408px 1352px #fff,1774px 120px #fff,1152px 1370px #fff,1698px 1810px #fff,710px 1450px #fff,665px 286px #fff,493px 1720px #fff,786px 5px #fff,637px 1140px #fff,764px 324px #fff,927px 310px #fff,938px 1424px #fff,1884px 744px #fff,913px 462px #fff,1831px 1936px #fff,1527px 249px #fff,36px 1381px #fff,1597px 581px #fff,1530px 355px #fff,949px 459px #fff,799px 828px #fff,242px 1471px #fff,654px 797px #fff,796px 594px #fff,1365px 678px #fff,752px 23px #fff,1630px 541px #fff,982px 72px #fff,1733px 1831px #fff,21px 412px #fff,775px 998px #fff,335px 1945px #fff,264px 583px #fff,158px 1311px #fff,528px 164px #fff,1978px 574px #fff,717px 1203px #fff,734px 1591px #fff,1555px 820px #fff,16px 1943px #fff,1625px 1177px #fff,1236px 690px #fff,1585px 1590px #fff,1737px 1728px #fff,721px 698px #fff,1804px 1186px #fff,166px 980px #fff,1850px 230px #fff,330px 1712px #fff,95px 797px #fff,1948px 1078px #fff,469px 939px #fff,1269px 1899px #fff,955px 1220px #fff,1137px 1075px #fff,312px 1293px #fff,986px 1762px #fff,1103px 1238px #fff,428px 1993px #fff,355px 570px #fff,977px 1836px #fff,1395px 1092px #fff,276px 913px #fff,1743px 656px #fff,773px 502px #fff,1686px 1322px #fff,1516px 1945px #fff,1334px 501px #fff,266px 156px #fff,455px 655px #fff,798px 72px #fff,1059px 1259px #fff,1402px 1687px #fff,236px 1329px #fff,1455px 786px #fff,146px 1228px #fff,1851px 823px #fff,1062px 100px #fff,1220px 953px #fff,20px 1826px #fff,36px 1063px #fff,1525px 338px #fff,790px 1521px #fff,741px 1099px #fff,288px 1489px #fff,700px 1060px #fff,390px 1071px #fff,411px 1036px #fff,1853px 1072px #fff,1446px 1085px #fff,1164px 874px #fff,924px 925px #fff,291px 271px #fff,1257px 1964px #fff,1580px 1352px #fff,1507px 1216px #fff,211px 956px #fff,985px 1195px #fff,975px 1640px #fff,518px 101px #fff,663px 1395px #fff,914px 532px #fff,145px 1320px #fff,69px 1397px #fff,982px 523px #fff,257px 725px #fff,1599px 831px #fff,1636px 1513px #fff,1250px 1158px #fff,1132px 604px #fff,183px 102px #fff,1057px 318px #fff,1247px 1835px #fff,1983px 1110px #fff,1077px 1455px #fff,921px 1770px #fff,806px 1350px #fff,1938px 1992px #fff,855px 1260px #fff,902px 1345px #fff,658px 1908px #fff,1845px 679px #fff,712px 1482px #fff,595px 950px #fff,1784px 1992px #fff,1847px 1785px #fff,691px 1004px #fff,175px 1179px #fff,1666px 1911px #fff,41px 61px #fff,971px 1080px #fff,1830px 1450px #fff,1351px 1518px #fff,1257px 99px #fff,1395px 1498px #fff,1117px 252px #fff,1779px 597px #fff,1346px 729px #fff,1108px 1144px #fff,402px 691px #fff,72px 496px #fff,1673px 1604px #fff,1497px 974px #fff,1865px 1664px #fff,88px 806px #fff,918px 77px #fff,244px 1118px #fff,256px 1820px #fff,1851px 1840px #fff,605px 1851px #fff,634px 383px #fff,865px 37px #fff,943px 1024px #fff,1951px 177px #fff,1097px 523px #fff,985px 1700px #fff,1243px 122px #fff,768px 1070px #fff,468px 194px #fff,320px 1867px #fff,1850px 185px #fff,380px 1616px #fff,468px 1294px #fff,1122px 1743px #fff,884px 299px #fff,1300px 1917px #fff,1860px 396px #fff,1270px 990px #fff,529px 733px #fff,1975px 1347px #fff,1885px 685px #fff,226px 506px #fff,651px 878px #fff,1323px 680px #fff,1284px 680px #fff,238px 1967px #fff,911px 174px #fff,1111px 521px #fff,1150px 85px #fff,794px 502px #fff,484px 1856px #fff,1809px 368px #fff,112px 953px #fff,590px 1009px #fff,1655px 311px #fff,100px 1026px #fff,1803px 352px #fff,865px 306px #fff,1077px 1019px #fff,1335px 872px #fff,1647px 1298px #fff,1233px 1387px #fff,698px 1036px #fff,659px 1860px #fff,388px 1412px #fff,1212px 458px #fff,755px 1468px #fff,696px 1654px #fff,1144px 60px #fff}.background #stars2{grid-area:stack;width:2px;height:2px;background:rgba(0,0,0,0);animation:animStar 100s linear;box-shadow:1448px 320px #fff,1775px 1663px #fff,332px 1364px #fff,878px 340px #fff,569px 1832px #fff,1422px 1684px #fff,1946px 1907px #fff,121px 979px #fff,1044px 1069px #fff,463px 381px #fff,423px 112px #fff,523px 1179px #fff,779px 654px #fff,1398px 694px #fff,1085px 1464px #fff,1599px 1869px #fff,801px 1882px #fff,779px 1231px #fff,552px 932px #fff,1057px 1196px #fff,282px 1280px #fff,496px 1986px #fff,1833px 1120px #fff,1802px 1293px #fff,6px 1696px #fff,412px 1902px #fff,605px 438px #fff,24px 1212px #fff,234px 1320px #fff,544px 344px #fff,1107px 170px #fff,1603px 196px #fff,905px 648px #fff,68px 1458px #fff,649px 1969px #fff,744px 675px #fff,1127px 478px #fff,714px 1814px #fff,1486px 526px #fff,270px 1636px #fff,1931px 149px #fff,1807px 378px #fff,8px 390px #fff,1415px 699px #fff,1473px 1211px #fff,1590px 141px #fff,270px 1705px #fff,69px 1423px #fff,1108px 1053px #fff,1946px 128px #fff,371px 371px #fff,1490px 220px #fff,357px 1885px #fff,363px 363px #fff,1896px 1256px #fff,1979px 1050px #fff,947px 1342px #fff,1754px 242px #fff,514px 974px #fff,65px 1477px #fff,1840px 547px #fff,950px 695px #fff,459px 1150px #fff,1124px 1502px #fff,481px 940px #fff,680px 839px #fff,797px 1169px #fff,1977px 1491px #fff,734px 1724px #fff,210px 298px #fff,816px 628px #fff,686px 770px #fff,1721px 267px #fff,1663px 511px #fff,1481px 1141px #fff,582px 248px #fff,1308px 953px #fff,628px 657px #fff,897px 1535px #fff,270px 931px #fff,791px 467px #fff,1336px 1732px #fff,1013px 1653px #fff,1911px 956px #fff,587px 816px #fff,83px 456px #fff,930px 1478px #fff,1587px 1694px #fff,614px 1200px #fff,302px 1782px #fff,1711px 1432px #fff,443px 904px #fff,1666px 714px #fff,1588px 1167px #fff,273px 1075px #fff,1679px 461px #fff,721px 664px #fff,1202px 10px #fff,166px 1126px #fff,331px 1628px #fff,430px 1565px #fff,1585px 509px #fff,640px 38px #fff,822px 837px #fff,1760px 1664px #fff,1122px 1458px #fff,398px 131px #fff,689px 285px #fff,460px 652px #fff,1627px 365px #fff,348px 1648px #fff,819px 1946px #fff,981px 1917px #fff,323px 76px #fff,979px 684px #fff,887px 536px #fff,1348px 1596px #fff,1055px 666px #fff,1402px 1797px #fff,1300px 1055px #fff,937px 238px #fff,1474px 1815px #fff,1144px 1710px #fff,1629px 1087px #fff,911px 919px #fff,771px 819px #fff,403px 720px #fff,163px 736px #fff,1062px 238px #fff,1774px 818px #fff,1874px 1178px #fff,1177px 699px #fff,1244px 1244px #fff,1371px 58px #fff,564px 1515px #fff,1824px 487px #fff,929px 702px #fff,394px 1348px #fff,1161px 641px #fff,219px 1841px #fff,358px 941px #fff,140px 1759px #fff,1019px 1345px #fff,274px 436px #fff,1433px 1605px #fff,1798px 1426px #fff,294px 1848px #fff,1681px 1877px #fff,1344px 1824px #fff,1439px 1632px #fff,161px 1012px #fff,1308px 588px #fff,1789px 582px #fff,721px 1910px #fff,318px 218px #fff,607px 319px #fff,495px 535px #fff,1552px 1575px #fff,1562px 67px #fff,403px 926px #fff,1096px 1800px #fff,1814px 1709px #fff,1882px 1831px #fff,533px 46px #fff,823px 969px #fff,530px 165px #fff,1030px 352px #fff,1681px 313px #fff,338px 115px #fff,1607px 211px #fff,1718px 1184px #fff,1589px 659px #fff,278px 355px #fff,464px 1464px #fff,1165px 277px #fff,950px 694px #fff,1746px 293px #fff,793px 911px #fff,528px 773px #fff,1883px 1694px #fff,748px 182px #fff,1924px 1531px #fff,100px 636px #fff,1473px 1445px #fff,1264px 1244px #fff,850px 1377px #fff,987px 1976px #fff,933px 1761px #fff,922px 1270px #fff,500px 396px #fff,1324px 8px #fff,1967px 1814px #fff,1072px 1401px #fff,961px 37px #fff,156px 81px #fff,1915px 502px #fff,1076px 1846px #fff,152px 1669px #fff,986px 1529px #fff,1667px 1137px #fff}.background #stars2:after{content:"";position:absolute;top:2000px;width:2px;height:2px;background:rgba(0,0,0,0);box-shadow:1448px 320px #fff,1775px 1663px #fff,332px 1364px #fff,878px 340px #fff,569px 1832px #fff,1422px 1684px #fff,1946px 1907px #fff,121px 979px #fff,1044px 1069px #fff,463px 381px #fff,423px 112px #fff,523px 1179px #fff,779px 654px #fff,1398px 694px #fff,1085px 1464px #fff,1599px 1869px #fff,801px 1882px #fff,779px 1231px #fff,552px 932px #fff,1057px 1196px #fff,282px 1280px #fff,496px 1986px #fff,1833px 1120px #fff,1802px 1293px #fff,6px 1696px #fff,412px 1902px #fff,605px 438px #fff,24px 1212px #fff,234px 1320px #fff,544px 344px #fff,1107px 170px #fff,1603px 196px #fff,905px 648px #fff,68px 1458px #fff,649px 1969px #fff,744px 675px #fff,1127px 478px #fff,714px 1814px #fff,1486px 526px #fff,270px 1636px #fff,1931px 149px #fff,1807px 378px #fff,8px 390px #fff,1415px 699px #fff,1473px 1211px #fff,1590px 141px #fff,270px 1705px #fff,69px 1423px #fff,1108px 1053px #fff,1946px 128px #fff,371px 371px #fff,1490px 220px #fff,357px 1885px #fff,363px 363px #fff,1896px 1256px #fff,1979px 1050px #fff,947px 1342px #fff,1754px 242px #fff,514px 974px #fff,65px 1477px #fff,1840px 547px #fff,950px 695px #fff,459px 1150px #fff,1124px 1502px #fff,481px 940px #fff,680px 839px #fff,797px 1169px #fff,1977px 1491px #fff,734px 1724px #fff,210px 298px #fff,816px 628px #fff,686px 770px #fff,1721px 267px #fff,1663px 511px #fff,1481px 1141px #fff,582px 248px #fff,1308px 953px #fff,628px 657px #fff,897px 1535px #fff,270px 931px #fff,791px 467px #fff,1336px 1732px #fff,1013px 1653px #fff,1911px 956px #fff,587px 816px #fff,83px 456px #fff,930px 1478px #fff,1587px 1694px #fff,614px 1200px #fff,302px 1782px #fff,1711px 1432px #fff,443px 904px #fff,1666px 714px #fff,1588px 1167px #fff,273px 1075px #fff,1679px 461px #fff,721px 664px #fff,1202px 10px #fff,166px 1126px #fff,331px 1628px #fff,430px 1565px #fff,1585px 509px #fff,640px 38px #fff,822px 837px #fff,1760px 1664px #fff,1122px 1458px #fff,398px 131px #fff,689px 285px #fff,460px 652px #fff,1627px 365px #fff,348px 1648px #fff,819px 1946px #fff,981px 1917px #fff,323px 76px #fff,979px 684px #fff,887px 536px #fff,1348px 1596px #fff,1055px 666px #fff,1402px 1797px #fff,1300px 1055px #fff,937px 238px #fff,1474px 1815px #fff,1144px 1710px #fff,1629px 1087px #fff,911px 919px #fff,771px 819px #fff,403px 720px #fff,163px 736px #fff,1062px 238px #fff,1774px 818px #fff,1874px 1178px #fff,1177px 699px #fff,1244px 1244px #fff,1371px 58px #fff,564px 1515px #fff,1824px 487px #fff,929px 702px #fff,394px 1348px #fff,1161px 641px #fff,219px 1841px #fff,358px 941px #fff,140px 1759px #fff,1019px 1345px #fff,274px 436px #fff,1433px 1605px #fff,1798px 1426px #fff,294px 1848px #fff,1681px 1877px #fff,1344px 1824px #fff,1439px 1632px #fff,161px 1012px #fff,1308px 588px #fff,1789px 582px #fff,721px 1910px #fff,318px 218px #fff,607px 319px #fff,495px 535px #fff,1552px 1575px #fff,1562px 67px #fff,403px 926px #fff,1096px 1800px #fff,1814px 1709px #fff,1882px 1831px #fff,533px 46px #fff,823px 969px #fff,530px 165px #fff,1030px 352px #fff,1681px 313px #fff,338px 115px #fff,1607px 211px #fff,1718px 1184px #fff,1589px 659px #fff,278px 355px #fff,464px 1464px #fff,1165px 277px #fff,950px 694px #fff,1746px 293px #fff,793px 911px #fff,528px 773px #fff,1883px 1694px #fff,748px 182px #fff,1924px 1531px #fff,100px 636px #fff,1473px 1445px #fff,1264px 1244px #fff,850px 1377px #fff,987px 1976px #fff,933px 1761px #fff,922px 1270px #fff,500px 396px #fff,1324px 8px #fff,1967px 1814px #fff,1072px 1401px #fff,961px 37px #fff,156px 81px #fff,1915px 502px #fff,1076px 1846px #fff,152px 1669px #fff,986px 1529px #fff,1667px 1137px #fff}.background #stars3{grid-area:stack;width:3px;height:3px;background:rgba(0,0,0,0);animation:animStar 150s linear infinite;box-shadow:387px 1878px #fff,760px 1564px #fff,1487px 999px #fff,948px 1828px #fff,1977px 1001px #fff,1284px 1963px #fff,656px 284px #fff,1268px 1635px #fff,1820px 598px #fff,642px 1900px #fff,296px 57px #fff,921px 1620px #fff,476px 1858px #fff,658px 613px #fff,1171px 1363px #fff,1419px 283px #fff,1037px 731px #fff,503px 663px #fff,1562px 463px #fff,383px 1197px #fff,1171px 1233px #fff,876px 1768px #fff,856px 1615px #fff,1375px 1924px #fff,1725px 918px #fff,952px 119px #fff,768px 1212px #fff,992px 1462px #fff,1929px 717px #fff,1947px 755px #fff,1818px 1123px #fff,1896px 1672px #fff,460px 198px #fff,256px 271px #fff,752px 544px #fff,1222px 1859px #fff,1851px 443px #fff,313px 1858px #fff,709px 446px #fff,1546px 697px #fff,674px 1155px #fff,1112px 130px #fff,355px 1790px #fff,1496px 974px #fff,1696px 480px #fff,1316px 1265px #fff,1645px 1063px #fff,1182px 237px #fff,427px 1582px #fff,859px 253px #fff,458px 939px #fff,1517px 1644px #fff,1943px 60px #fff,212px 1650px #fff,966px 1786px #fff,473px 712px #fff,130px 76px #fff,1417px 1186px #fff,909px 1580px #fff,1913px 762px #fff,204px 1143px #fff,1998px 1057px #fff,1468px 1301px #fff,144px 1676px #fff,21px 1601px #fff,382px 1362px #fff,912px 753px #fff,1488px 1405px #fff,802px 156px #fff,174px 550px #fff,338px 1366px #fff,1197px 774px #fff,602px 486px #fff,682px 1877px #fff,348px 1503px #fff,407px 1139px #fff,950px 1400px #fff,922px 1139px #fff,1697px 293px #fff,1238px 1281px #fff,1038px 1197px #fff,376px 1889px #fff,1255px 1680px #fff,1008px 1316px #fff,1538px 1447px #fff,1186px 874px #fff,1967px 640px #fff,1341px 19px #fff,29px 1732px #fff,16px 1650px #fff,1021px 1075px #fff,723px 424px #fff,1175px 41px #fff,494px 1957px #fff,1296px 431px #fff,175px 1507px #fff,831px 121px #fff,498px 1947px #fff,617px 880px #fff,240px 403px #fff}.background #stars3:after{content:"";position:absolute;top:2000px;width:3px;height:3px;background:rgba(0,0,0,0);box-shadow:387px 1878px #fff,760px 1564px #fff,1487px 999px #fff,948px 1828px #fff,1977px 1001px #fff,1284px 1963px #fff,656px 284px #fff,1268px 1635px #fff,1820px 598px #fff,642px 1900px #fff,296px 57px #fff,921px 1620px #fff,476px 1858px #fff,658px 613px #fff,1171px 1363px #fff,1419px 283px #fff,1037px 731px #fff,503px 663px #fff,1562px 463px #fff,383px 1197px #fff,1171px 1233px #fff,876px 1768px #fff,856px 1615px #fff,1375px 1924px #fff,1725px 918px #fff,952px 119px #fff,768px 1212px #fff,992px 1462px #fff,1929px 717px #fff,1947px 755px #fff,1818px 1123px #fff,1896px 1672px #fff,460px 198px #fff,256px 271px #fff,752px 544px #fff,1222px 1859px #fff,1851px 443px #fff,313px 1858px #fff,709px 446px #fff,1546px 697px #fff,674px 1155px #fff,1112px 130px #fff,355px 1790px #fff,1496px 974px #fff,1696px 480px #fff,1316px 1265px #fff,1645px 1063px #fff,1182px 237px #fff,427px 1582px #fff,859px 253px #fff,458px 939px #fff,1517px 1644px #fff,1943px 60px #fff,212px 1650px #fff,966px 1786px #fff,473px 712px #fff,130px 76px #fff,1417px 1186px #fff,909px 1580px #fff,1913px 762px #fff,204px 1143px #fff,1998px 1057px #fff,1468px 1301px #fff,144px 1676px #fff,21px 1601px #fff,382px 1362px #fff,912px 753px #fff,1488px 1405px #fff,802px 156px #fff,174px 550px #fff,338px 1366px #fff,1197px 774px #fff,602px 486px #fff,682px 1877px #fff,348px 1503px #fff,407px 1139px #fff,950px 1400px #fff,922px 1139px #fff,1697px 293px #fff,1238px 1281px #fff,1038px 1197px #fff,376px 1889px #fff,1255px 1680px #fff,1008px 1316px #fff,1538px 1447px #fff,1186px 874px #fff,1967px 640px #fff,1341px 19px #fff,29px 1732px #fff,16px 1650px #fff,1021px 1075px #fff,723px 424px #fff,1175px 41px #fff,494px 1957px #fff,1296px 431px #fff,175px 1507px #fff,831px 121px #fff,498px 1947px #fff,617px 880px #fff,240px 403px #fff}@keyframes animStar{from{transform:translateY(0)}to{transform:translateY(-2000px)}}.background:before{content:"";display:block;width:100%;height:100%;position:absolute;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.3);z-index:-1} -.notes-page-skeleton-wrapper{width:100%;height:100VH;display:flex;justify-content:center;gap:25px;padding:125px 15% 75px calc(15% - 10px);background:radial-gradient(ellipse at bottom, #1b2735 0%, #090a0f 100%);z-index:100}.notes-page-skeleton-wrapper aside{width:470px;display:flex;flex-direction:column;gap:20px}.notes-page-skeleton-wrapper aside .search-bar-skeleton{width:100%;height:50px;background:linear-gradient(90deg, rgba(0, 0, 0, 0.2), rgba(27, 39, 53, 0.3), rgba(0, 0, 0, 0.2));box-shadow:rgba(0,0,0,.1) 0 8px 24px;animation:skeleton 1s infinite linear;background-size:200%;border-radius:28px}.notes-page-skeleton-wrapper aside .notes-container-skeleton{display:flex;justify-content:flex-start;align-items:center;flex-direction:column;gap:25px;flex:1;width:100%}.notes-page-skeleton-wrapper aside .notes-container-skeleton .note-skeleton{width:100%;height:120px;background:linear-gradient(90deg, rgba(1, 1, 1, 0.2), rgba(27, 39, 53, 0.3), rgba(0, 0, 0, 0.2));box-shadow:rgba(0,0,0,.1) 0 8px 24px;animation:skeleton 1s infinite linear;background-size:200%;border-radius:15px}@keyframes skeleton{0%{background-position:-100% 0}100%{background-position:100% 0}} -*,*::before,*::after{box-sizing:border-box}ul[class],ol[class]{padding:0}body,h1,h2,h3,h4,p,pre,ul[class],ol[class],li,figure,figcaption,blockquote,dl,dd{margin:0}body{min-height:100vh;scroll-behavior:smooth;line-height:1.5}ul[class],ol[class]{list-style:none}a:not([class]){text-decoration-skip-ink:auto}img{max-width:100%;display:block}article>*+*{margin-top:1em}input,button,textarea,select{font:inherit}p,span{font-family:inherit}@media(prefers-reduced-motion: reduce){*{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}} +.background{width:100%;height:100%;position:fixed;top:0;left:0;display:grid;grid-template-areas:"stack";overflow:hidden;z-index:-1}.background .parallax-bg{z-index:-2;min-height:100%;width:100%;grid-area:stack;background:radial-gradient(ellipse at bottom, #1b2735 0%, #090a0f 100%)}.background #stars{grid-area:stack;width:1px;height:1px;background:rgba(0,0,0,0);-webkit-box-shadow:779px 1331px #fff,324px 42px #fff,303px 586px #fff,1312px 276px #fff,451px 625px #fff,521px 1931px #fff,1087px 1871px #fff,36px 1546px #fff,132px 934px #fff,1698px 901px #fff,1418px 664px #fff,1448px 1157px #fff,1084px 232px #fff,347px 1776px #fff,1722px 243px #fff,1629px 835px #fff,479px 969px #fff,1231px 960px #fff,586px 384px #fff,164px 527px #fff,8px 646px #fff,1150px 1126px #fff,665px 1357px #fff,1556px 1982px #fff,1260px 1961px #fff,1675px 1741px #fff,1843px 1514px #fff,718px 1628px #fff,242px 1343px #fff,1497px 1880px #fff,1364px 230px #fff,1739px 1302px #fff,636px 959px #fff,304px 686px #fff,614px 751px #fff,1935px 816px #fff,1428px 60px #fff,355px 335px #fff,1594px 158px #fff,90px 60px #fff,1553px 162px #fff,1239px 1825px #fff,1945px 587px #fff,749px 1785px #fff,1987px 1172px #fff,1301px 1237px #fff,1039px 342px #fff,1585px 1481px #fff,995px 1048px #fff,524px 932px #fff,214px 413px #fff,1701px 1300px #fff,1037px 1613px #fff,1871px 996px #fff,1360px 1635px #fff,1110px 1313px #fff,412px 1783px #fff,1949px 177px #fff,903px 1854px #fff,700px 1936px #fff,378px 125px #fff,308px 834px #fff,1118px 962px #fff,1350px 1929px #fff,781px 1811px #fff,561px 137px #fff,757px 1148px #fff,1670px 1979px #fff,343px 739px #fff,945px 795px #fff,576px 1903px #fff,1078px 1436px #fff,1583px 450px #fff,1366px 474px #fff,297px 1873px #fff,192px 162px #fff,1624px 1633px #fff,59px 453px #fff,82px 1872px #fff,1933px 498px #fff,1966px 1974px #fff,1975px 1688px #fff,779px 314px #fff,1858px 1543px #fff,73px 1507px #fff,1693px 975px #fff,1683px 108px #fff,1768px 1654px #fff,654px 14px #fff,494px 171px #fff,1689px 1895px #fff,1660px 263px #fff,1031px 903px #fff,1203px 1393px #fff,1333px 1421px #fff,1113px 41px #fff,1206px 1645px #fff,1325px 1635px #fff,142px 388px #fff,572px 215px #fff,1535px 296px #fff,1419px 407px #fff,1379px 1003px #fff,329px 469px #fff,1791px 1652px #fff,935px 1802px #fff,1330px 1820px #fff,421px 1933px #fff,828px 365px #fff,275px 316px #fff,707px 960px #fff,1605px 1554px #fff,625px 58px #fff,717px 1697px #fff,1669px 246px #fff,1925px 322px #fff,1154px 1803px #fff,1929px 295px #fff,1248px 240px #fff,1045px 1755px #fff,166px 942px #fff,1888px 1773px #fff,678px 1963px #fff,1370px 569px #fff,1974px 1400px #fff,1786px 460px #fff,51px 307px #fff,784px 1400px #fff,730px 1258px #fff,1712px 393px #fff,416px 170px #fff,1797px 1932px #fff,572px 219px #fff,1557px 1856px #fff,218px 8px #fff,348px 1334px #fff,469px 413px #fff,385px 1738px #fff,1357px 1818px #fff,240px 942px #fff,248px 1847px #fff,1535px 806px #fff,236px 1514px #fff,1429px 1556px #fff,73px 1633px #fff,1398px 1121px #fff,671px 1301px #fff,1404px 1663px #fff,740px 1018px #fff,1600px 377px #fff,785px 514px #fff,112px 1084px #fff,1915px 1887px #fff,1463px 1848px #fff,687px 1115px #fff,1268px 1768px #fff,1729px 1425px #fff,1284px 1022px #fff,801px 974px #fff,1975px 1317px #fff,1354px 834px #fff,1446px 1484px #fff,1283px 1786px #fff,11px 523px #fff,1842px 236px #fff,1355px 654px #fff,429px 7px #fff,1033px 1128px #fff,157px 297px #fff,545px 635px #fff,52px 1080px #fff,827px 1520px #fff,1121px 490px #fff,9px 309px #fff,1744px 1586px #fff,1014px 417px #fff,1534px 524px #fff,958px 552px #fff,1403px 1496px #fff,387px 703px #fff,1522px 548px #fff,1355px 282px #fff,1532px 601px #fff,1838px 790px #fff,290px 259px #fff,295px 598px #fff,1601px 539px #fff,1561px 1272px #fff,34px 1922px #fff,1024px 543px #fff,467px 369px #fff,722px 333px #fff,1976px 1255px #fff,766px 983px #fff,1582px 1285px #fff,12px 512px #fff,617px 1410px #fff,682px 577px #fff,1334px 1438px #fff,439px 327px #fff,1617px 1661px #fff,673px 129px #fff,794px 941px #fff,1386px 1902px #fff,37px 1353px #fff,1467px 1353px #fff,416px 18px #fff,187px 344px #fff,200px 1898px #fff,1491px 1619px #fff,811px 347px #fff,924px 1827px #fff,945px 217px #fff,1735px 1228px #fff,379px 1890px #fff,79px 761px #fff,825px 1837px #fff,1980px 1558px #fff,1308px 1573px #fff,1488px 1726px #fff,382px 1208px #fff,522px 595px #fff,1277px 1898px #fff,354px 552px #fff,161px 1784px #fff,614px 251px #fff,526px 1576px #fff,17px 212px #fff,179px 996px #fff,467px 1208px #fff,1944px 1838px #fff,1140px 1093px #fff,858px 1007px #fff,200px 1064px #fff,423px 1964px #fff,1945px 439px #fff,1377px 689px #fff,1120px 1437px #fff,1876px 668px #fff,907px 1324px #fff,343px 1976px #fff,1816px 1501px #fff,1849px 177px #fff,647px 91px #fff,1984px 1012px #fff,1336px 1300px #fff,128px 648px #fff,305px 1060px #fff,1324px 826px #fff,1263px 1314px #fff,1801px 629px #fff,1614px 1555px #fff,1634px 90px #fff,1603px 452px #fff,891px 1984px #fff,1556px 1906px #fff,121px 68px #fff,1676px 1714px #fff,516px 936px #fff,1947px 1492px #fff,1455px 1519px #fff,45px 602px #fff,205px 1039px #fff,793px 172px #fff,1562px 1739px #fff,1056px 110px #fff,1512px 379px #fff,1795px 1621px #fff,1848px 607px #fff,262px 1719px #fff,477px 991px #fff,483px 883px #fff,1239px 1197px #fff,1496px 647px #fff,1649px 25px #fff,1491px 1946px #fff,119px 996px #fff,179px 1472px #fff,1341px 808px #fff,1565px 1700px #fff,407px 1544px #fff,1754px 357px #fff,1288px 981px #fff,902px 1997px #fff,1755px 1668px #fff,186px 877px #fff,1202px 1882px #fff,461px 1213px #fff,1400px 748px #fff,1969px 1899px #fff,809px 522px #fff,514px 1219px #fff,374px 275px #fff,938px 1973px #fff,357px 552px #fff,144px 1722px #fff,1572px 912px #fff,402px 1858px #fff,1544px 1195px #fff,667px 1257px #fff,727px 1496px #fff,993px 232px #fff,1772px 313px #fff,1040px 1590px #fff,1204px 1973px #fff,1268px 79px #fff,1555px 1048px #fff,986px 1707px #fff,978px 1710px #fff,713px 360px #fff,407px 863px #fff,461px 736px #fff,284px 1608px #fff,103px 430px #fff,1283px 1319px #fff,977px 1186px #fff,1966px 1516px #fff,1287px 1129px #fff,70px 1098px #fff,1189px 889px #fff,1126px 1734px #fff,309px 1292px #fff,879px 764px #fff,65px 473px #fff,1003px 1959px #fff,658px 791px #fff,402px 1576px #fff,35px 622px #fff,529px 1589px #fff,164px 666px #fff,1876px 1290px #fff,1541px 526px #fff,270px 1297px #fff,440px 865px #fff,1500px 802px #fff,182px 1754px #fff,1264px 892px #fff,272px 1249px #fff,1289px 1535px #fff,190px 1646px #fff,955px 242px #fff,1456px 1597px #fff,1727px 1983px #fff,635px 801px #fff,226px 455px #fff,1396px 1710px #fff,849px 1863px #fff,237px 1264px #fff,839px 140px #fff,1122px 735px #fff,1280px 15px #fff,1318px 242px #fff,1819px 1148px #fff,333px 1392px #fff,1949px 553px #fff,1878px 1332px #fff,467px 548px #fff,1812px 1082px #fff,1067px 193px #fff,243px 156px #fff,483px 1616px #fff,1714px 933px #fff,759px 1800px #fff,1822px 995px #fff,1877px 572px #fff,581px 1084px #fff,107px 732px #fff,642px 1837px #fff,166px 1493px #fff,1555px 198px #fff,819px 307px #fff,947px 345px #fff,827px 224px #fff,927px 1394px #fff,540px 467px #fff,1093px 405px #fff,1140px 927px #fff,130px 529px #fff,33px 1980px #fff,1147px 1663px #fff,1616px 1436px #fff,528px 710px #fff,798px 1100px #fff,505px 1480px #fff,899px 641px #fff,1909px 1949px #fff,1311px 964px #fff,979px 1301px #fff,1393px 969px #fff,1793px 1886px #fff,292px 357px #fff,1196px 1718px #fff,1290px 1994px #fff,537px 1973px #fff,1181px 1674px #fff,1740px 1566px #fff,1307px 265px #fff,922px 522px #fff,1892px 472px #fff,384px 1746px #fff,392px 1098px #fff,647px 548px #fff,390px 1498px #fff,1246px 138px #fff,730px 876px #fff,192px 1472px #fff,1790px 1789px #fff,928px 311px #fff,1253px 1647px #fff,747px 1921px #fff,1561px 1025px #fff,1533px 1292px #fff,1985px 195px #fff,728px 729px #fff,1712px 1936px #fff,512px 1717px #fff,1528px 483px #fff,313px 1642px #fff,281px 1849px #fff,1212px 799px #fff,435px 1191px #fff,1422px 611px #fff,1718px 1964px #fff,411px 944px #fff,210px 636px #fff,1502px 1295px #fff,1434px 349px #fff,769px 60px #fff,747px 1053px #fff,789px 504px #fff,1436px 1264px #fff,1893px 1225px #fff,1394px 1788px #fff,1108px 1317px #fff,1673px 1395px #fff,854px 1010px #fff,1705px 80px #fff,1858px 148px #fff,1729px 344px #fff,1388px 664px #fff,895px 406px #fff,1479px 157px #fff,1441px 1157px #fff,552px 1900px #fff,516px 364px #fff,1647px 189px #fff,1427px 1071px #fff,785px 729px #fff,1080px 1710px #fff,504px 204px #fff,1177px 1622px #fff,657px 34px #fff,1296px 1099px #fff,248px 180px #fff,1212px 1568px #fff,667px 1562px #fff,695px 841px #fff,1608px 1247px #fff,751px 882px #fff,87px 167px #fff,607px 1368px #fff,1363px 1203px #fff,1836px 317px #fff,1668px 1703px #fff,830px 1154px #fff,1721px 1398px #fff,1601px 1280px #fff,976px 874px #fff,1743px 254px #fff,1020px 1815px #fff,1670px 1766px #fff,1890px 735px #fff,1379px 136px #fff,1864px 695px #fff,206px 965px #fff,1404px 1932px #fff,1923px 1360px #fff,247px 682px #fff,519px 1708px #fff,645px 750px #fff,1164px 1204px #fff,834px 323px #fff,172px 1350px #fff,213px 972px #fff,1837px 190px #fff,285px 1806px #fff,1047px 1299px #fff,1548px 825px #fff,1730px 324px #fff,1346px 1909px #fff,772px 270px #fff,345px 1190px #fff,478px 1433px #fff,1479px 25px #fff,1994px 1830px #fff,1744px 732px #fff,20px 1635px #fff,690px 1795px #fff,1594px 569px #fff,579px 245px #fff,1398px 733px #fff,408px 1352px #fff,1774px 120px #fff,1152px 1370px #fff,1698px 1810px #fff,710px 1450px #fff,665px 286px #fff,493px 1720px #fff,786px 5px #fff,637px 1140px #fff,764px 324px #fff,927px 310px #fff,938px 1424px #fff,1884px 744px #fff,913px 462px #fff,1831px 1936px #fff,1527px 249px #fff,36px 1381px #fff,1597px 581px #fff,1530px 355px #fff,949px 459px #fff,799px 828px #fff,242px 1471px #fff,654px 797px #fff,796px 594px #fff,1365px 678px #fff,752px 23px #fff,1630px 541px #fff,982px 72px #fff,1733px 1831px #fff,21px 412px #fff,775px 998px #fff,335px 1945px #fff,264px 583px #fff,158px 1311px #fff,528px 164px #fff,1978px 574px #fff,717px 1203px #fff,734px 1591px #fff,1555px 820px #fff,16px 1943px #fff,1625px 1177px #fff,1236px 690px #fff,1585px 1590px #fff,1737px 1728px #fff,721px 698px #fff,1804px 1186px #fff,166px 980px #fff,1850px 230px #fff,330px 1712px #fff,95px 797px #fff,1948px 1078px #fff,469px 939px #fff,1269px 1899px #fff,955px 1220px #fff,1137px 1075px #fff,312px 1293px #fff,986px 1762px #fff,1103px 1238px #fff,428px 1993px #fff,355px 570px #fff,977px 1836px #fff,1395px 1092px #fff,276px 913px #fff,1743px 656px #fff,773px 502px #fff,1686px 1322px #fff,1516px 1945px #fff,1334px 501px #fff,266px 156px #fff,455px 655px #fff,798px 72px #fff,1059px 1259px #fff,1402px 1687px #fff,236px 1329px #fff,1455px 786px #fff,146px 1228px #fff,1851px 823px #fff,1062px 100px #fff,1220px 953px #fff,20px 1826px #fff,36px 1063px #fff,1525px 338px #fff,790px 1521px #fff,741px 1099px #fff,288px 1489px #fff,700px 1060px #fff,390px 1071px #fff,411px 1036px #fff,1853px 1072px #fff,1446px 1085px #fff,1164px 874px #fff,924px 925px #fff,291px 271px #fff,1257px 1964px #fff,1580px 1352px #fff,1507px 1216px #fff,211px 956px #fff,985px 1195px #fff,975px 1640px #fff,518px 101px #fff,663px 1395px #fff,914px 532px #fff,145px 1320px #fff,69px 1397px #fff,982px 523px #fff,257px 725px #fff,1599px 831px #fff,1636px 1513px #fff,1250px 1158px #fff,1132px 604px #fff,183px 102px #fff,1057px 318px #fff,1247px 1835px #fff,1983px 1110px #fff,1077px 1455px #fff,921px 1770px #fff,806px 1350px #fff,1938px 1992px #fff,855px 1260px #fff,902px 1345px #fff,658px 1908px #fff,1845px 679px #fff,712px 1482px #fff,595px 950px #fff,1784px 1992px #fff,1847px 1785px #fff,691px 1004px #fff,175px 1179px #fff,1666px 1911px #fff,41px 61px #fff,971px 1080px #fff,1830px 1450px #fff,1351px 1518px #fff,1257px 99px #fff,1395px 1498px #fff,1117px 252px #fff,1779px 597px #fff,1346px 729px #fff,1108px 1144px #fff,402px 691px #fff,72px 496px #fff,1673px 1604px #fff,1497px 974px #fff,1865px 1664px #fff,88px 806px #fff,918px 77px #fff,244px 1118px #fff,256px 1820px #fff,1851px 1840px #fff,605px 1851px #fff,634px 383px #fff,865px 37px #fff,943px 1024px #fff,1951px 177px #fff,1097px 523px #fff,985px 1700px #fff,1243px 122px #fff,768px 1070px #fff,468px 194px #fff,320px 1867px #fff,1850px 185px #fff,380px 1616px #fff,468px 1294px #fff,1122px 1743px #fff,884px 299px #fff,1300px 1917px #fff,1860px 396px #fff,1270px 990px #fff,529px 733px #fff,1975px 1347px #fff,1885px 685px #fff,226px 506px #fff,651px 878px #fff,1323px 680px #fff,1284px 680px #fff,238px 1967px #fff,911px 174px #fff,1111px 521px #fff,1150px 85px #fff,794px 502px #fff,484px 1856px #fff,1809px 368px #fff,112px 953px #fff,590px 1009px #fff,1655px 311px #fff,100px 1026px #fff,1803px 352px #fff,865px 306px #fff,1077px 1019px #fff,1335px 872px #fff,1647px 1298px #fff,1233px 1387px #fff,698px 1036px #fff,659px 1860px #fff,388px 1412px #fff,1212px 458px #fff,755px 1468px #fff,696px 1654px #fff,1144px 60px #fff;box-shadow:779px 1331px #fff,324px 42px #fff,303px 586px #fff,1312px 276px #fff,451px 625px #fff,521px 1931px #fff,1087px 1871px #fff,36px 1546px #fff,132px 934px #fff,1698px 901px #fff,1418px 664px #fff,1448px 1157px #fff,1084px 232px #fff,347px 1776px #fff,1722px 243px #fff,1629px 835px #fff,479px 969px #fff,1231px 960px #fff,586px 384px #fff,164px 527px #fff,8px 646px #fff,1150px 1126px #fff,665px 1357px #fff,1556px 1982px #fff,1260px 1961px #fff,1675px 1741px #fff,1843px 1514px #fff,718px 1628px #fff,242px 1343px #fff,1497px 1880px #fff,1364px 230px #fff,1739px 1302px #fff,636px 959px #fff,304px 686px #fff,614px 751px #fff,1935px 816px #fff,1428px 60px #fff,355px 335px #fff,1594px 158px #fff,90px 60px #fff,1553px 162px #fff,1239px 1825px #fff,1945px 587px #fff,749px 1785px #fff,1987px 1172px #fff,1301px 1237px #fff,1039px 342px #fff,1585px 1481px #fff,995px 1048px #fff,524px 932px #fff,214px 413px #fff,1701px 1300px #fff,1037px 1613px #fff,1871px 996px #fff,1360px 1635px #fff,1110px 1313px #fff,412px 1783px #fff,1949px 177px #fff,903px 1854px #fff,700px 1936px #fff,378px 125px #fff,308px 834px #fff,1118px 962px #fff,1350px 1929px #fff,781px 1811px #fff,561px 137px #fff,757px 1148px #fff,1670px 1979px #fff,343px 739px #fff,945px 795px #fff,576px 1903px #fff,1078px 1436px #fff,1583px 450px #fff,1366px 474px #fff,297px 1873px #fff,192px 162px #fff,1624px 1633px #fff,59px 453px #fff,82px 1872px #fff,1933px 498px #fff,1966px 1974px #fff,1975px 1688px #fff,779px 314px #fff,1858px 1543px #fff,73px 1507px #fff,1693px 975px #fff,1683px 108px #fff,1768px 1654px #fff,654px 14px #fff,494px 171px #fff,1689px 1895px #fff,1660px 263px #fff,1031px 903px #fff,1203px 1393px #fff,1333px 1421px #fff,1113px 41px #fff,1206px 1645px #fff,1325px 1635px #fff,142px 388px #fff,572px 215px #fff,1535px 296px #fff,1419px 407px #fff,1379px 1003px #fff,329px 469px #fff,1791px 1652px #fff,935px 1802px #fff,1330px 1820px #fff,421px 1933px #fff,828px 365px #fff,275px 316px #fff,707px 960px #fff,1605px 1554px #fff,625px 58px #fff,717px 1697px #fff,1669px 246px #fff,1925px 322px #fff,1154px 1803px #fff,1929px 295px #fff,1248px 240px #fff,1045px 1755px #fff,166px 942px #fff,1888px 1773px #fff,678px 1963px #fff,1370px 569px #fff,1974px 1400px #fff,1786px 460px #fff,51px 307px #fff,784px 1400px #fff,730px 1258px #fff,1712px 393px #fff,416px 170px #fff,1797px 1932px #fff,572px 219px #fff,1557px 1856px #fff,218px 8px #fff,348px 1334px #fff,469px 413px #fff,385px 1738px #fff,1357px 1818px #fff,240px 942px #fff,248px 1847px #fff,1535px 806px #fff,236px 1514px #fff,1429px 1556px #fff,73px 1633px #fff,1398px 1121px #fff,671px 1301px #fff,1404px 1663px #fff,740px 1018px #fff,1600px 377px #fff,785px 514px #fff,112px 1084px #fff,1915px 1887px #fff,1463px 1848px #fff,687px 1115px #fff,1268px 1768px #fff,1729px 1425px #fff,1284px 1022px #fff,801px 974px #fff,1975px 1317px #fff,1354px 834px #fff,1446px 1484px #fff,1283px 1786px #fff,11px 523px #fff,1842px 236px #fff,1355px 654px #fff,429px 7px #fff,1033px 1128px #fff,157px 297px #fff,545px 635px #fff,52px 1080px #fff,827px 1520px #fff,1121px 490px #fff,9px 309px #fff,1744px 1586px #fff,1014px 417px #fff,1534px 524px #fff,958px 552px #fff,1403px 1496px #fff,387px 703px #fff,1522px 548px #fff,1355px 282px #fff,1532px 601px #fff,1838px 790px #fff,290px 259px #fff,295px 598px #fff,1601px 539px #fff,1561px 1272px #fff,34px 1922px #fff,1024px 543px #fff,467px 369px #fff,722px 333px #fff,1976px 1255px #fff,766px 983px #fff,1582px 1285px #fff,12px 512px #fff,617px 1410px #fff,682px 577px #fff,1334px 1438px #fff,439px 327px #fff,1617px 1661px #fff,673px 129px #fff,794px 941px #fff,1386px 1902px #fff,37px 1353px #fff,1467px 1353px #fff,416px 18px #fff,187px 344px #fff,200px 1898px #fff,1491px 1619px #fff,811px 347px #fff,924px 1827px #fff,945px 217px #fff,1735px 1228px #fff,379px 1890px #fff,79px 761px #fff,825px 1837px #fff,1980px 1558px #fff,1308px 1573px #fff,1488px 1726px #fff,382px 1208px #fff,522px 595px #fff,1277px 1898px #fff,354px 552px #fff,161px 1784px #fff,614px 251px #fff,526px 1576px #fff,17px 212px #fff,179px 996px #fff,467px 1208px #fff,1944px 1838px #fff,1140px 1093px #fff,858px 1007px #fff,200px 1064px #fff,423px 1964px #fff,1945px 439px #fff,1377px 689px #fff,1120px 1437px #fff,1876px 668px #fff,907px 1324px #fff,343px 1976px #fff,1816px 1501px #fff,1849px 177px #fff,647px 91px #fff,1984px 1012px #fff,1336px 1300px #fff,128px 648px #fff,305px 1060px #fff,1324px 826px #fff,1263px 1314px #fff,1801px 629px #fff,1614px 1555px #fff,1634px 90px #fff,1603px 452px #fff,891px 1984px #fff,1556px 1906px #fff,121px 68px #fff,1676px 1714px #fff,516px 936px #fff,1947px 1492px #fff,1455px 1519px #fff,45px 602px #fff,205px 1039px #fff,793px 172px #fff,1562px 1739px #fff,1056px 110px #fff,1512px 379px #fff,1795px 1621px #fff,1848px 607px #fff,262px 1719px #fff,477px 991px #fff,483px 883px #fff,1239px 1197px #fff,1496px 647px #fff,1649px 25px #fff,1491px 1946px #fff,119px 996px #fff,179px 1472px #fff,1341px 808px #fff,1565px 1700px #fff,407px 1544px #fff,1754px 357px #fff,1288px 981px #fff,902px 1997px #fff,1755px 1668px #fff,186px 877px #fff,1202px 1882px #fff,461px 1213px #fff,1400px 748px #fff,1969px 1899px #fff,809px 522px #fff,514px 1219px #fff,374px 275px #fff,938px 1973px #fff,357px 552px #fff,144px 1722px #fff,1572px 912px #fff,402px 1858px #fff,1544px 1195px #fff,667px 1257px #fff,727px 1496px #fff,993px 232px #fff,1772px 313px #fff,1040px 1590px #fff,1204px 1973px #fff,1268px 79px #fff,1555px 1048px #fff,986px 1707px #fff,978px 1710px #fff,713px 360px #fff,407px 863px #fff,461px 736px #fff,284px 1608px #fff,103px 430px #fff,1283px 1319px #fff,977px 1186px #fff,1966px 1516px #fff,1287px 1129px #fff,70px 1098px #fff,1189px 889px #fff,1126px 1734px #fff,309px 1292px #fff,879px 764px #fff,65px 473px #fff,1003px 1959px #fff,658px 791px #fff,402px 1576px #fff,35px 622px #fff,529px 1589px #fff,164px 666px #fff,1876px 1290px #fff,1541px 526px #fff,270px 1297px #fff,440px 865px #fff,1500px 802px #fff,182px 1754px #fff,1264px 892px #fff,272px 1249px #fff,1289px 1535px #fff,190px 1646px #fff,955px 242px #fff,1456px 1597px #fff,1727px 1983px #fff,635px 801px #fff,226px 455px #fff,1396px 1710px #fff,849px 1863px #fff,237px 1264px #fff,839px 140px #fff,1122px 735px #fff,1280px 15px #fff,1318px 242px #fff,1819px 1148px #fff,333px 1392px #fff,1949px 553px #fff,1878px 1332px #fff,467px 548px #fff,1812px 1082px #fff,1067px 193px #fff,243px 156px #fff,483px 1616px #fff,1714px 933px #fff,759px 1800px #fff,1822px 995px #fff,1877px 572px #fff,581px 1084px #fff,107px 732px #fff,642px 1837px #fff,166px 1493px #fff,1555px 198px #fff,819px 307px #fff,947px 345px #fff,827px 224px #fff,927px 1394px #fff,540px 467px #fff,1093px 405px #fff,1140px 927px #fff,130px 529px #fff,33px 1980px #fff,1147px 1663px #fff,1616px 1436px #fff,528px 710px #fff,798px 1100px #fff,505px 1480px #fff,899px 641px #fff,1909px 1949px #fff,1311px 964px #fff,979px 1301px #fff,1393px 969px #fff,1793px 1886px #fff,292px 357px #fff,1196px 1718px #fff,1290px 1994px #fff,537px 1973px #fff,1181px 1674px #fff,1740px 1566px #fff,1307px 265px #fff,922px 522px #fff,1892px 472px #fff,384px 1746px #fff,392px 1098px #fff,647px 548px #fff,390px 1498px #fff,1246px 138px #fff,730px 876px #fff,192px 1472px #fff,1790px 1789px #fff,928px 311px #fff,1253px 1647px #fff,747px 1921px #fff,1561px 1025px #fff,1533px 1292px #fff,1985px 195px #fff,728px 729px #fff,1712px 1936px #fff,512px 1717px #fff,1528px 483px #fff,313px 1642px #fff,281px 1849px #fff,1212px 799px #fff,435px 1191px #fff,1422px 611px #fff,1718px 1964px #fff,411px 944px #fff,210px 636px #fff,1502px 1295px #fff,1434px 349px #fff,769px 60px #fff,747px 1053px #fff,789px 504px #fff,1436px 1264px #fff,1893px 1225px #fff,1394px 1788px #fff,1108px 1317px #fff,1673px 1395px #fff,854px 1010px #fff,1705px 80px #fff,1858px 148px #fff,1729px 344px #fff,1388px 664px #fff,895px 406px #fff,1479px 157px #fff,1441px 1157px #fff,552px 1900px #fff,516px 364px #fff,1647px 189px #fff,1427px 1071px #fff,785px 729px #fff,1080px 1710px #fff,504px 204px #fff,1177px 1622px #fff,657px 34px #fff,1296px 1099px #fff,248px 180px #fff,1212px 1568px #fff,667px 1562px #fff,695px 841px #fff,1608px 1247px #fff,751px 882px #fff,87px 167px #fff,607px 1368px #fff,1363px 1203px #fff,1836px 317px #fff,1668px 1703px #fff,830px 1154px #fff,1721px 1398px #fff,1601px 1280px #fff,976px 874px #fff,1743px 254px #fff,1020px 1815px #fff,1670px 1766px #fff,1890px 735px #fff,1379px 136px #fff,1864px 695px #fff,206px 965px #fff,1404px 1932px #fff,1923px 1360px #fff,247px 682px #fff,519px 1708px #fff,645px 750px #fff,1164px 1204px #fff,834px 323px #fff,172px 1350px #fff,213px 972px #fff,1837px 190px #fff,285px 1806px #fff,1047px 1299px #fff,1548px 825px #fff,1730px 324px #fff,1346px 1909px #fff,772px 270px #fff,345px 1190px #fff,478px 1433px #fff,1479px 25px #fff,1994px 1830px #fff,1744px 732px #fff,20px 1635px #fff,690px 1795px #fff,1594px 569px #fff,579px 245px #fff,1398px 733px #fff,408px 1352px #fff,1774px 120px #fff,1152px 1370px #fff,1698px 1810px #fff,710px 1450px #fff,665px 286px #fff,493px 1720px #fff,786px 5px #fff,637px 1140px #fff,764px 324px #fff,927px 310px #fff,938px 1424px #fff,1884px 744px #fff,913px 462px #fff,1831px 1936px #fff,1527px 249px #fff,36px 1381px #fff,1597px 581px #fff,1530px 355px #fff,949px 459px #fff,799px 828px #fff,242px 1471px #fff,654px 797px #fff,796px 594px #fff,1365px 678px #fff,752px 23px #fff,1630px 541px #fff,982px 72px #fff,1733px 1831px #fff,21px 412px #fff,775px 998px #fff,335px 1945px #fff,264px 583px #fff,158px 1311px #fff,528px 164px #fff,1978px 574px #fff,717px 1203px #fff,734px 1591px #fff,1555px 820px #fff,16px 1943px #fff,1625px 1177px #fff,1236px 690px #fff,1585px 1590px #fff,1737px 1728px #fff,721px 698px #fff,1804px 1186px #fff,166px 980px #fff,1850px 230px #fff,330px 1712px #fff,95px 797px #fff,1948px 1078px #fff,469px 939px #fff,1269px 1899px #fff,955px 1220px #fff,1137px 1075px #fff,312px 1293px #fff,986px 1762px #fff,1103px 1238px #fff,428px 1993px #fff,355px 570px #fff,977px 1836px #fff,1395px 1092px #fff,276px 913px #fff,1743px 656px #fff,773px 502px #fff,1686px 1322px #fff,1516px 1945px #fff,1334px 501px #fff,266px 156px #fff,455px 655px #fff,798px 72px #fff,1059px 1259px #fff,1402px 1687px #fff,236px 1329px #fff,1455px 786px #fff,146px 1228px #fff,1851px 823px #fff,1062px 100px #fff,1220px 953px #fff,20px 1826px #fff,36px 1063px #fff,1525px 338px #fff,790px 1521px #fff,741px 1099px #fff,288px 1489px #fff,700px 1060px #fff,390px 1071px #fff,411px 1036px #fff,1853px 1072px #fff,1446px 1085px #fff,1164px 874px #fff,924px 925px #fff,291px 271px #fff,1257px 1964px #fff,1580px 1352px #fff,1507px 1216px #fff,211px 956px #fff,985px 1195px #fff,975px 1640px #fff,518px 101px #fff,663px 1395px #fff,914px 532px #fff,145px 1320px #fff,69px 1397px #fff,982px 523px #fff,257px 725px #fff,1599px 831px #fff,1636px 1513px #fff,1250px 1158px #fff,1132px 604px #fff,183px 102px #fff,1057px 318px #fff,1247px 1835px #fff,1983px 1110px #fff,1077px 1455px #fff,921px 1770px #fff,806px 1350px #fff,1938px 1992px #fff,855px 1260px #fff,902px 1345px #fff,658px 1908px #fff,1845px 679px #fff,712px 1482px #fff,595px 950px #fff,1784px 1992px #fff,1847px 1785px #fff,691px 1004px #fff,175px 1179px #fff,1666px 1911px #fff,41px 61px #fff,971px 1080px #fff,1830px 1450px #fff,1351px 1518px #fff,1257px 99px #fff,1395px 1498px #fff,1117px 252px #fff,1779px 597px #fff,1346px 729px #fff,1108px 1144px #fff,402px 691px #fff,72px 496px #fff,1673px 1604px #fff,1497px 974px #fff,1865px 1664px #fff,88px 806px #fff,918px 77px #fff,244px 1118px #fff,256px 1820px #fff,1851px 1840px #fff,605px 1851px #fff,634px 383px #fff,865px 37px #fff,943px 1024px #fff,1951px 177px #fff,1097px 523px #fff,985px 1700px #fff,1243px 122px #fff,768px 1070px #fff,468px 194px #fff,320px 1867px #fff,1850px 185px #fff,380px 1616px #fff,468px 1294px #fff,1122px 1743px #fff,884px 299px #fff,1300px 1917px #fff,1860px 396px #fff,1270px 990px #fff,529px 733px #fff,1975px 1347px #fff,1885px 685px #fff,226px 506px #fff,651px 878px #fff,1323px 680px #fff,1284px 680px #fff,238px 1967px #fff,911px 174px #fff,1111px 521px #fff,1150px 85px #fff,794px 502px #fff,484px 1856px #fff,1809px 368px #fff,112px 953px #fff,590px 1009px #fff,1655px 311px #fff,100px 1026px #fff,1803px 352px #fff,865px 306px #fff,1077px 1019px #fff,1335px 872px #fff,1647px 1298px #fff,1233px 1387px #fff,698px 1036px #fff,659px 1860px #fff,388px 1412px #fff,1212px 458px #fff,755px 1468px #fff,696px 1654px #fff,1144px 60px #fff;background:radial-gradient(ellipse at bottom, #1b2735 0%, #090a0f 100%)}.background #stars:after{content:"";position:absolute;top:2000px;width:1px;height:1px;background:rgba(0,0,0,0);-webkit-box-shadow:779px 1331px #fff,324px 42px #fff,303px 586px #fff,1312px 276px #fff,451px 625px #fff,521px 1931px #fff,1087px 1871px #fff,36px 1546px #fff,132px 934px #fff,1698px 901px #fff,1418px 664px #fff,1448px 1157px #fff,1084px 232px #fff,347px 1776px #fff,1722px 243px #fff,1629px 835px #fff,479px 969px #fff,1231px 960px #fff,586px 384px #fff,164px 527px #fff,8px 646px #fff,1150px 1126px #fff,665px 1357px #fff,1556px 1982px #fff,1260px 1961px #fff,1675px 1741px #fff,1843px 1514px #fff,718px 1628px #fff,242px 1343px #fff,1497px 1880px #fff,1364px 230px #fff,1739px 1302px #fff,636px 959px #fff,304px 686px #fff,614px 751px #fff,1935px 816px #fff,1428px 60px #fff,355px 335px #fff,1594px 158px #fff,90px 60px #fff,1553px 162px #fff,1239px 1825px #fff,1945px 587px #fff,749px 1785px #fff,1987px 1172px #fff,1301px 1237px #fff,1039px 342px #fff,1585px 1481px #fff,995px 1048px #fff,524px 932px #fff,214px 413px #fff,1701px 1300px #fff,1037px 1613px #fff,1871px 996px #fff,1360px 1635px #fff,1110px 1313px #fff,412px 1783px #fff,1949px 177px #fff,903px 1854px #fff,700px 1936px #fff,378px 125px #fff,308px 834px #fff,1118px 962px #fff,1350px 1929px #fff,781px 1811px #fff,561px 137px #fff,757px 1148px #fff,1670px 1979px #fff,343px 739px #fff,945px 795px #fff,576px 1903px #fff,1078px 1436px #fff,1583px 450px #fff,1366px 474px #fff,297px 1873px #fff,192px 162px #fff,1624px 1633px #fff,59px 453px #fff,82px 1872px #fff,1933px 498px #fff,1966px 1974px #fff,1975px 1688px #fff,779px 314px #fff,1858px 1543px #fff,73px 1507px #fff,1693px 975px #fff,1683px 108px #fff,1768px 1654px #fff,654px 14px #fff,494px 171px #fff,1689px 1895px #fff,1660px 263px #fff,1031px 903px #fff,1203px 1393px #fff,1333px 1421px #fff,1113px 41px #fff,1206px 1645px #fff,1325px 1635px #fff,142px 388px #fff,572px 215px #fff,1535px 296px #fff,1419px 407px #fff,1379px 1003px #fff,329px 469px #fff,1791px 1652px #fff,935px 1802px #fff,1330px 1820px #fff,421px 1933px #fff,828px 365px #fff,275px 316px #fff,707px 960px #fff,1605px 1554px #fff,625px 58px #fff,717px 1697px #fff,1669px 246px #fff,1925px 322px #fff,1154px 1803px #fff,1929px 295px #fff,1248px 240px #fff,1045px 1755px #fff,166px 942px #fff,1888px 1773px #fff,678px 1963px #fff,1370px 569px #fff,1974px 1400px #fff,1786px 460px #fff,51px 307px #fff,784px 1400px #fff,730px 1258px #fff,1712px 393px #fff,416px 170px #fff,1797px 1932px #fff,572px 219px #fff,1557px 1856px #fff,218px 8px #fff,348px 1334px #fff,469px 413px #fff,385px 1738px #fff,1357px 1818px #fff,240px 942px #fff,248px 1847px #fff,1535px 806px #fff,236px 1514px #fff,1429px 1556px #fff,73px 1633px #fff,1398px 1121px #fff,671px 1301px #fff,1404px 1663px #fff,740px 1018px #fff,1600px 377px #fff,785px 514px #fff,112px 1084px #fff,1915px 1887px #fff,1463px 1848px #fff,687px 1115px #fff,1268px 1768px #fff,1729px 1425px #fff,1284px 1022px #fff,801px 974px #fff,1975px 1317px #fff,1354px 834px #fff,1446px 1484px #fff,1283px 1786px #fff,11px 523px #fff,1842px 236px #fff,1355px 654px #fff,429px 7px #fff,1033px 1128px #fff,157px 297px #fff,545px 635px #fff,52px 1080px #fff,827px 1520px #fff,1121px 490px #fff,9px 309px #fff,1744px 1586px #fff,1014px 417px #fff,1534px 524px #fff,958px 552px #fff,1403px 1496px #fff,387px 703px #fff,1522px 548px #fff,1355px 282px #fff,1532px 601px #fff,1838px 790px #fff,290px 259px #fff,295px 598px #fff,1601px 539px #fff,1561px 1272px #fff,34px 1922px #fff,1024px 543px #fff,467px 369px #fff,722px 333px #fff,1976px 1255px #fff,766px 983px #fff,1582px 1285px #fff,12px 512px #fff,617px 1410px #fff,682px 577px #fff,1334px 1438px #fff,439px 327px #fff,1617px 1661px #fff,673px 129px #fff,794px 941px #fff,1386px 1902px #fff,37px 1353px #fff,1467px 1353px #fff,416px 18px #fff,187px 344px #fff,200px 1898px #fff,1491px 1619px #fff,811px 347px #fff,924px 1827px #fff,945px 217px #fff,1735px 1228px #fff,379px 1890px #fff,79px 761px #fff,825px 1837px #fff,1980px 1558px #fff,1308px 1573px #fff,1488px 1726px #fff,382px 1208px #fff,522px 595px #fff,1277px 1898px #fff,354px 552px #fff,161px 1784px #fff,614px 251px #fff,526px 1576px #fff,17px 212px #fff,179px 996px #fff,467px 1208px #fff,1944px 1838px #fff,1140px 1093px #fff,858px 1007px #fff,200px 1064px #fff,423px 1964px #fff,1945px 439px #fff,1377px 689px #fff,1120px 1437px #fff,1876px 668px #fff,907px 1324px #fff,343px 1976px #fff,1816px 1501px #fff,1849px 177px #fff,647px 91px #fff,1984px 1012px #fff,1336px 1300px #fff,128px 648px #fff,305px 1060px #fff,1324px 826px #fff,1263px 1314px #fff,1801px 629px #fff,1614px 1555px #fff,1634px 90px #fff,1603px 452px #fff,891px 1984px #fff,1556px 1906px #fff,121px 68px #fff,1676px 1714px #fff,516px 936px #fff,1947px 1492px #fff,1455px 1519px #fff,45px 602px #fff,205px 1039px #fff,793px 172px #fff,1562px 1739px #fff,1056px 110px #fff,1512px 379px #fff,1795px 1621px #fff,1848px 607px #fff,262px 1719px #fff,477px 991px #fff,483px 883px #fff,1239px 1197px #fff,1496px 647px #fff,1649px 25px #fff,1491px 1946px #fff,119px 996px #fff,179px 1472px #fff,1341px 808px #fff,1565px 1700px #fff,407px 1544px #fff,1754px 357px #fff,1288px 981px #fff,902px 1997px #fff,1755px 1668px #fff,186px 877px #fff,1202px 1882px #fff,461px 1213px #fff,1400px 748px #fff,1969px 1899px #fff,809px 522px #fff,514px 1219px #fff,374px 275px #fff,938px 1973px #fff,357px 552px #fff,144px 1722px #fff,1572px 912px #fff,402px 1858px #fff,1544px 1195px #fff,667px 1257px #fff,727px 1496px #fff,993px 232px #fff,1772px 313px #fff,1040px 1590px #fff,1204px 1973px #fff,1268px 79px #fff,1555px 1048px #fff,986px 1707px #fff,978px 1710px #fff,713px 360px #fff,407px 863px #fff,461px 736px #fff,284px 1608px #fff,103px 430px #fff,1283px 1319px #fff,977px 1186px #fff,1966px 1516px #fff,1287px 1129px #fff,70px 1098px #fff,1189px 889px #fff,1126px 1734px #fff,309px 1292px #fff,879px 764px #fff,65px 473px #fff,1003px 1959px #fff,658px 791px #fff,402px 1576px #fff,35px 622px #fff,529px 1589px #fff,164px 666px #fff,1876px 1290px #fff,1541px 526px #fff,270px 1297px #fff,440px 865px #fff,1500px 802px #fff,182px 1754px #fff,1264px 892px #fff,272px 1249px #fff,1289px 1535px #fff,190px 1646px #fff,955px 242px #fff,1456px 1597px #fff,1727px 1983px #fff,635px 801px #fff,226px 455px #fff,1396px 1710px #fff,849px 1863px #fff,237px 1264px #fff,839px 140px #fff,1122px 735px #fff,1280px 15px #fff,1318px 242px #fff,1819px 1148px #fff,333px 1392px #fff,1949px 553px #fff,1878px 1332px #fff,467px 548px #fff,1812px 1082px #fff,1067px 193px #fff,243px 156px #fff,483px 1616px #fff,1714px 933px #fff,759px 1800px #fff,1822px 995px #fff,1877px 572px #fff,581px 1084px #fff,107px 732px #fff,642px 1837px #fff,166px 1493px #fff,1555px 198px #fff,819px 307px #fff,947px 345px #fff,827px 224px #fff,927px 1394px #fff,540px 467px #fff,1093px 405px #fff,1140px 927px #fff,130px 529px #fff,33px 1980px #fff,1147px 1663px #fff,1616px 1436px #fff,528px 710px #fff,798px 1100px #fff,505px 1480px #fff,899px 641px #fff,1909px 1949px #fff,1311px 964px #fff,979px 1301px #fff,1393px 969px #fff,1793px 1886px #fff,292px 357px #fff,1196px 1718px #fff,1290px 1994px #fff,537px 1973px #fff,1181px 1674px #fff,1740px 1566px #fff,1307px 265px #fff,922px 522px #fff,1892px 472px #fff,384px 1746px #fff,392px 1098px #fff,647px 548px #fff,390px 1498px #fff,1246px 138px #fff,730px 876px #fff,192px 1472px #fff,1790px 1789px #fff,928px 311px #fff,1253px 1647px #fff,747px 1921px #fff,1561px 1025px #fff,1533px 1292px #fff,1985px 195px #fff,728px 729px #fff,1712px 1936px #fff,512px 1717px #fff,1528px 483px #fff,313px 1642px #fff,281px 1849px #fff,1212px 799px #fff,435px 1191px #fff,1422px 611px #fff,1718px 1964px #fff,411px 944px #fff,210px 636px #fff,1502px 1295px #fff,1434px 349px #fff,769px 60px #fff,747px 1053px #fff,789px 504px #fff,1436px 1264px #fff,1893px 1225px #fff,1394px 1788px #fff,1108px 1317px #fff,1673px 1395px #fff,854px 1010px #fff,1705px 80px #fff,1858px 148px #fff,1729px 344px #fff,1388px 664px #fff,895px 406px #fff,1479px 157px #fff,1441px 1157px #fff,552px 1900px #fff,516px 364px #fff,1647px 189px #fff,1427px 1071px #fff,785px 729px #fff,1080px 1710px #fff,504px 204px #fff,1177px 1622px #fff,657px 34px #fff,1296px 1099px #fff,248px 180px #fff,1212px 1568px #fff,667px 1562px #fff,695px 841px #fff,1608px 1247px #fff,751px 882px #fff,87px 167px #fff,607px 1368px #fff,1363px 1203px #fff,1836px 317px #fff,1668px 1703px #fff,830px 1154px #fff,1721px 1398px #fff,1601px 1280px #fff,976px 874px #fff,1743px 254px #fff,1020px 1815px #fff,1670px 1766px #fff,1890px 735px #fff,1379px 136px #fff,1864px 695px #fff,206px 965px #fff,1404px 1932px #fff,1923px 1360px #fff,247px 682px #fff,519px 1708px #fff,645px 750px #fff,1164px 1204px #fff,834px 323px #fff,172px 1350px #fff,213px 972px #fff,1837px 190px #fff,285px 1806px #fff,1047px 1299px #fff,1548px 825px #fff,1730px 324px #fff,1346px 1909px #fff,772px 270px #fff,345px 1190px #fff,478px 1433px #fff,1479px 25px #fff,1994px 1830px #fff,1744px 732px #fff,20px 1635px #fff,690px 1795px #fff,1594px 569px #fff,579px 245px #fff,1398px 733px #fff,408px 1352px #fff,1774px 120px #fff,1152px 1370px #fff,1698px 1810px #fff,710px 1450px #fff,665px 286px #fff,493px 1720px #fff,786px 5px #fff,637px 1140px #fff,764px 324px #fff,927px 310px #fff,938px 1424px #fff,1884px 744px #fff,913px 462px #fff,1831px 1936px #fff,1527px 249px #fff,36px 1381px #fff,1597px 581px #fff,1530px 355px #fff,949px 459px #fff,799px 828px #fff,242px 1471px #fff,654px 797px #fff,796px 594px #fff,1365px 678px #fff,752px 23px #fff,1630px 541px #fff,982px 72px #fff,1733px 1831px #fff,21px 412px #fff,775px 998px #fff,335px 1945px #fff,264px 583px #fff,158px 1311px #fff,528px 164px #fff,1978px 574px #fff,717px 1203px #fff,734px 1591px #fff,1555px 820px #fff,16px 1943px #fff,1625px 1177px #fff,1236px 690px #fff,1585px 1590px #fff,1737px 1728px #fff,721px 698px #fff,1804px 1186px #fff,166px 980px #fff,1850px 230px #fff,330px 1712px #fff,95px 797px #fff,1948px 1078px #fff,469px 939px #fff,1269px 1899px #fff,955px 1220px #fff,1137px 1075px #fff,312px 1293px #fff,986px 1762px #fff,1103px 1238px #fff,428px 1993px #fff,355px 570px #fff,977px 1836px #fff,1395px 1092px #fff,276px 913px #fff,1743px 656px #fff,773px 502px #fff,1686px 1322px #fff,1516px 1945px #fff,1334px 501px #fff,266px 156px #fff,455px 655px #fff,798px 72px #fff,1059px 1259px #fff,1402px 1687px #fff,236px 1329px #fff,1455px 786px #fff,146px 1228px #fff,1851px 823px #fff,1062px 100px #fff,1220px 953px #fff,20px 1826px #fff,36px 1063px #fff,1525px 338px #fff,790px 1521px #fff,741px 1099px #fff,288px 1489px #fff,700px 1060px #fff,390px 1071px #fff,411px 1036px #fff,1853px 1072px #fff,1446px 1085px #fff,1164px 874px #fff,924px 925px #fff,291px 271px #fff,1257px 1964px #fff,1580px 1352px #fff,1507px 1216px #fff,211px 956px #fff,985px 1195px #fff,975px 1640px #fff,518px 101px #fff,663px 1395px #fff,914px 532px #fff,145px 1320px #fff,69px 1397px #fff,982px 523px #fff,257px 725px #fff,1599px 831px #fff,1636px 1513px #fff,1250px 1158px #fff,1132px 604px #fff,183px 102px #fff,1057px 318px #fff,1247px 1835px #fff,1983px 1110px #fff,1077px 1455px #fff,921px 1770px #fff,806px 1350px #fff,1938px 1992px #fff,855px 1260px #fff,902px 1345px #fff,658px 1908px #fff,1845px 679px #fff,712px 1482px #fff,595px 950px #fff,1784px 1992px #fff,1847px 1785px #fff,691px 1004px #fff,175px 1179px #fff,1666px 1911px #fff,41px 61px #fff,971px 1080px #fff,1830px 1450px #fff,1351px 1518px #fff,1257px 99px #fff,1395px 1498px #fff,1117px 252px #fff,1779px 597px #fff,1346px 729px #fff,1108px 1144px #fff,402px 691px #fff,72px 496px #fff,1673px 1604px #fff,1497px 974px #fff,1865px 1664px #fff,88px 806px #fff,918px 77px #fff,244px 1118px #fff,256px 1820px #fff,1851px 1840px #fff,605px 1851px #fff,634px 383px #fff,865px 37px #fff,943px 1024px #fff,1951px 177px #fff,1097px 523px #fff,985px 1700px #fff,1243px 122px #fff,768px 1070px #fff,468px 194px #fff,320px 1867px #fff,1850px 185px #fff,380px 1616px #fff,468px 1294px #fff,1122px 1743px #fff,884px 299px #fff,1300px 1917px #fff,1860px 396px #fff,1270px 990px #fff,529px 733px #fff,1975px 1347px #fff,1885px 685px #fff,226px 506px #fff,651px 878px #fff,1323px 680px #fff,1284px 680px #fff,238px 1967px #fff,911px 174px #fff,1111px 521px #fff,1150px 85px #fff,794px 502px #fff,484px 1856px #fff,1809px 368px #fff,112px 953px #fff,590px 1009px #fff,1655px 311px #fff,100px 1026px #fff,1803px 352px #fff,865px 306px #fff,1077px 1019px #fff,1335px 872px #fff,1647px 1298px #fff,1233px 1387px #fff,698px 1036px #fff,659px 1860px #fff,388px 1412px #fff,1212px 458px #fff,755px 1468px #fff,696px 1654px #fff,1144px 60px #fff;box-shadow:779px 1331px #fff,324px 42px #fff,303px 586px #fff,1312px 276px #fff,451px 625px #fff,521px 1931px #fff,1087px 1871px #fff,36px 1546px #fff,132px 934px #fff,1698px 901px #fff,1418px 664px #fff,1448px 1157px #fff,1084px 232px #fff,347px 1776px #fff,1722px 243px #fff,1629px 835px #fff,479px 969px #fff,1231px 960px #fff,586px 384px #fff,164px 527px #fff,8px 646px #fff,1150px 1126px #fff,665px 1357px #fff,1556px 1982px #fff,1260px 1961px #fff,1675px 1741px #fff,1843px 1514px #fff,718px 1628px #fff,242px 1343px #fff,1497px 1880px #fff,1364px 230px #fff,1739px 1302px #fff,636px 959px #fff,304px 686px #fff,614px 751px #fff,1935px 816px #fff,1428px 60px #fff,355px 335px #fff,1594px 158px #fff,90px 60px #fff,1553px 162px #fff,1239px 1825px #fff,1945px 587px #fff,749px 1785px #fff,1987px 1172px #fff,1301px 1237px #fff,1039px 342px #fff,1585px 1481px #fff,995px 1048px #fff,524px 932px #fff,214px 413px #fff,1701px 1300px #fff,1037px 1613px #fff,1871px 996px #fff,1360px 1635px #fff,1110px 1313px #fff,412px 1783px #fff,1949px 177px #fff,903px 1854px #fff,700px 1936px #fff,378px 125px #fff,308px 834px #fff,1118px 962px #fff,1350px 1929px #fff,781px 1811px #fff,561px 137px #fff,757px 1148px #fff,1670px 1979px #fff,343px 739px #fff,945px 795px #fff,576px 1903px #fff,1078px 1436px #fff,1583px 450px #fff,1366px 474px #fff,297px 1873px #fff,192px 162px #fff,1624px 1633px #fff,59px 453px #fff,82px 1872px #fff,1933px 498px #fff,1966px 1974px #fff,1975px 1688px #fff,779px 314px #fff,1858px 1543px #fff,73px 1507px #fff,1693px 975px #fff,1683px 108px #fff,1768px 1654px #fff,654px 14px #fff,494px 171px #fff,1689px 1895px #fff,1660px 263px #fff,1031px 903px #fff,1203px 1393px #fff,1333px 1421px #fff,1113px 41px #fff,1206px 1645px #fff,1325px 1635px #fff,142px 388px #fff,572px 215px #fff,1535px 296px #fff,1419px 407px #fff,1379px 1003px #fff,329px 469px #fff,1791px 1652px #fff,935px 1802px #fff,1330px 1820px #fff,421px 1933px #fff,828px 365px #fff,275px 316px #fff,707px 960px #fff,1605px 1554px #fff,625px 58px #fff,717px 1697px #fff,1669px 246px #fff,1925px 322px #fff,1154px 1803px #fff,1929px 295px #fff,1248px 240px #fff,1045px 1755px #fff,166px 942px #fff,1888px 1773px #fff,678px 1963px #fff,1370px 569px #fff,1974px 1400px #fff,1786px 460px #fff,51px 307px #fff,784px 1400px #fff,730px 1258px #fff,1712px 393px #fff,416px 170px #fff,1797px 1932px #fff,572px 219px #fff,1557px 1856px #fff,218px 8px #fff,348px 1334px #fff,469px 413px #fff,385px 1738px #fff,1357px 1818px #fff,240px 942px #fff,248px 1847px #fff,1535px 806px #fff,236px 1514px #fff,1429px 1556px #fff,73px 1633px #fff,1398px 1121px #fff,671px 1301px #fff,1404px 1663px #fff,740px 1018px #fff,1600px 377px #fff,785px 514px #fff,112px 1084px #fff,1915px 1887px #fff,1463px 1848px #fff,687px 1115px #fff,1268px 1768px #fff,1729px 1425px #fff,1284px 1022px #fff,801px 974px #fff,1975px 1317px #fff,1354px 834px #fff,1446px 1484px #fff,1283px 1786px #fff,11px 523px #fff,1842px 236px #fff,1355px 654px #fff,429px 7px #fff,1033px 1128px #fff,157px 297px #fff,545px 635px #fff,52px 1080px #fff,827px 1520px #fff,1121px 490px #fff,9px 309px #fff,1744px 1586px #fff,1014px 417px #fff,1534px 524px #fff,958px 552px #fff,1403px 1496px #fff,387px 703px #fff,1522px 548px #fff,1355px 282px #fff,1532px 601px #fff,1838px 790px #fff,290px 259px #fff,295px 598px #fff,1601px 539px #fff,1561px 1272px #fff,34px 1922px #fff,1024px 543px #fff,467px 369px #fff,722px 333px #fff,1976px 1255px #fff,766px 983px #fff,1582px 1285px #fff,12px 512px #fff,617px 1410px #fff,682px 577px #fff,1334px 1438px #fff,439px 327px #fff,1617px 1661px #fff,673px 129px #fff,794px 941px #fff,1386px 1902px #fff,37px 1353px #fff,1467px 1353px #fff,416px 18px #fff,187px 344px #fff,200px 1898px #fff,1491px 1619px #fff,811px 347px #fff,924px 1827px #fff,945px 217px #fff,1735px 1228px #fff,379px 1890px #fff,79px 761px #fff,825px 1837px #fff,1980px 1558px #fff,1308px 1573px #fff,1488px 1726px #fff,382px 1208px #fff,522px 595px #fff,1277px 1898px #fff,354px 552px #fff,161px 1784px #fff,614px 251px #fff,526px 1576px #fff,17px 212px #fff,179px 996px #fff,467px 1208px #fff,1944px 1838px #fff,1140px 1093px #fff,858px 1007px #fff,200px 1064px #fff,423px 1964px #fff,1945px 439px #fff,1377px 689px #fff,1120px 1437px #fff,1876px 668px #fff,907px 1324px #fff,343px 1976px #fff,1816px 1501px #fff,1849px 177px #fff,647px 91px #fff,1984px 1012px #fff,1336px 1300px #fff,128px 648px #fff,305px 1060px #fff,1324px 826px #fff,1263px 1314px #fff,1801px 629px #fff,1614px 1555px #fff,1634px 90px #fff,1603px 452px #fff,891px 1984px #fff,1556px 1906px #fff,121px 68px #fff,1676px 1714px #fff,516px 936px #fff,1947px 1492px #fff,1455px 1519px #fff,45px 602px #fff,205px 1039px #fff,793px 172px #fff,1562px 1739px #fff,1056px 110px #fff,1512px 379px #fff,1795px 1621px #fff,1848px 607px #fff,262px 1719px #fff,477px 991px #fff,483px 883px #fff,1239px 1197px #fff,1496px 647px #fff,1649px 25px #fff,1491px 1946px #fff,119px 996px #fff,179px 1472px #fff,1341px 808px #fff,1565px 1700px #fff,407px 1544px #fff,1754px 357px #fff,1288px 981px #fff,902px 1997px #fff,1755px 1668px #fff,186px 877px #fff,1202px 1882px #fff,461px 1213px #fff,1400px 748px #fff,1969px 1899px #fff,809px 522px #fff,514px 1219px #fff,374px 275px #fff,938px 1973px #fff,357px 552px #fff,144px 1722px #fff,1572px 912px #fff,402px 1858px #fff,1544px 1195px #fff,667px 1257px #fff,727px 1496px #fff,993px 232px #fff,1772px 313px #fff,1040px 1590px #fff,1204px 1973px #fff,1268px 79px #fff,1555px 1048px #fff,986px 1707px #fff,978px 1710px #fff,713px 360px #fff,407px 863px #fff,461px 736px #fff,284px 1608px #fff,103px 430px #fff,1283px 1319px #fff,977px 1186px #fff,1966px 1516px #fff,1287px 1129px #fff,70px 1098px #fff,1189px 889px #fff,1126px 1734px #fff,309px 1292px #fff,879px 764px #fff,65px 473px #fff,1003px 1959px #fff,658px 791px #fff,402px 1576px #fff,35px 622px #fff,529px 1589px #fff,164px 666px #fff,1876px 1290px #fff,1541px 526px #fff,270px 1297px #fff,440px 865px #fff,1500px 802px #fff,182px 1754px #fff,1264px 892px #fff,272px 1249px #fff,1289px 1535px #fff,190px 1646px #fff,955px 242px #fff,1456px 1597px #fff,1727px 1983px #fff,635px 801px #fff,226px 455px #fff,1396px 1710px #fff,849px 1863px #fff,237px 1264px #fff,839px 140px #fff,1122px 735px #fff,1280px 15px #fff,1318px 242px #fff,1819px 1148px #fff,333px 1392px #fff,1949px 553px #fff,1878px 1332px #fff,467px 548px #fff,1812px 1082px #fff,1067px 193px #fff,243px 156px #fff,483px 1616px #fff,1714px 933px #fff,759px 1800px #fff,1822px 995px #fff,1877px 572px #fff,581px 1084px #fff,107px 732px #fff,642px 1837px #fff,166px 1493px #fff,1555px 198px #fff,819px 307px #fff,947px 345px #fff,827px 224px #fff,927px 1394px #fff,540px 467px #fff,1093px 405px #fff,1140px 927px #fff,130px 529px #fff,33px 1980px #fff,1147px 1663px #fff,1616px 1436px #fff,528px 710px #fff,798px 1100px #fff,505px 1480px #fff,899px 641px #fff,1909px 1949px #fff,1311px 964px #fff,979px 1301px #fff,1393px 969px #fff,1793px 1886px #fff,292px 357px #fff,1196px 1718px #fff,1290px 1994px #fff,537px 1973px #fff,1181px 1674px #fff,1740px 1566px #fff,1307px 265px #fff,922px 522px #fff,1892px 472px #fff,384px 1746px #fff,392px 1098px #fff,647px 548px #fff,390px 1498px #fff,1246px 138px #fff,730px 876px #fff,192px 1472px #fff,1790px 1789px #fff,928px 311px #fff,1253px 1647px #fff,747px 1921px #fff,1561px 1025px #fff,1533px 1292px #fff,1985px 195px #fff,728px 729px #fff,1712px 1936px #fff,512px 1717px #fff,1528px 483px #fff,313px 1642px #fff,281px 1849px #fff,1212px 799px #fff,435px 1191px #fff,1422px 611px #fff,1718px 1964px #fff,411px 944px #fff,210px 636px #fff,1502px 1295px #fff,1434px 349px #fff,769px 60px #fff,747px 1053px #fff,789px 504px #fff,1436px 1264px #fff,1893px 1225px #fff,1394px 1788px #fff,1108px 1317px #fff,1673px 1395px #fff,854px 1010px #fff,1705px 80px #fff,1858px 148px #fff,1729px 344px #fff,1388px 664px #fff,895px 406px #fff,1479px 157px #fff,1441px 1157px #fff,552px 1900px #fff,516px 364px #fff,1647px 189px #fff,1427px 1071px #fff,785px 729px #fff,1080px 1710px #fff,504px 204px #fff,1177px 1622px #fff,657px 34px #fff,1296px 1099px #fff,248px 180px #fff,1212px 1568px #fff,667px 1562px #fff,695px 841px #fff,1608px 1247px #fff,751px 882px #fff,87px 167px #fff,607px 1368px #fff,1363px 1203px #fff,1836px 317px #fff,1668px 1703px #fff,830px 1154px #fff,1721px 1398px #fff,1601px 1280px #fff,976px 874px #fff,1743px 254px #fff,1020px 1815px #fff,1670px 1766px #fff,1890px 735px #fff,1379px 136px #fff,1864px 695px #fff,206px 965px #fff,1404px 1932px #fff,1923px 1360px #fff,247px 682px #fff,519px 1708px #fff,645px 750px #fff,1164px 1204px #fff,834px 323px #fff,172px 1350px #fff,213px 972px #fff,1837px 190px #fff,285px 1806px #fff,1047px 1299px #fff,1548px 825px #fff,1730px 324px #fff,1346px 1909px #fff,772px 270px #fff,345px 1190px #fff,478px 1433px #fff,1479px 25px #fff,1994px 1830px #fff,1744px 732px #fff,20px 1635px #fff,690px 1795px #fff,1594px 569px #fff,579px 245px #fff,1398px 733px #fff,408px 1352px #fff,1774px 120px #fff,1152px 1370px #fff,1698px 1810px #fff,710px 1450px #fff,665px 286px #fff,493px 1720px #fff,786px 5px #fff,637px 1140px #fff,764px 324px #fff,927px 310px #fff,938px 1424px #fff,1884px 744px #fff,913px 462px #fff,1831px 1936px #fff,1527px 249px #fff,36px 1381px #fff,1597px 581px #fff,1530px 355px #fff,949px 459px #fff,799px 828px #fff,242px 1471px #fff,654px 797px #fff,796px 594px #fff,1365px 678px #fff,752px 23px #fff,1630px 541px #fff,982px 72px #fff,1733px 1831px #fff,21px 412px #fff,775px 998px #fff,335px 1945px #fff,264px 583px #fff,158px 1311px #fff,528px 164px #fff,1978px 574px #fff,717px 1203px #fff,734px 1591px #fff,1555px 820px #fff,16px 1943px #fff,1625px 1177px #fff,1236px 690px #fff,1585px 1590px #fff,1737px 1728px #fff,721px 698px #fff,1804px 1186px #fff,166px 980px #fff,1850px 230px #fff,330px 1712px #fff,95px 797px #fff,1948px 1078px #fff,469px 939px #fff,1269px 1899px #fff,955px 1220px #fff,1137px 1075px #fff,312px 1293px #fff,986px 1762px #fff,1103px 1238px #fff,428px 1993px #fff,355px 570px #fff,977px 1836px #fff,1395px 1092px #fff,276px 913px #fff,1743px 656px #fff,773px 502px #fff,1686px 1322px #fff,1516px 1945px #fff,1334px 501px #fff,266px 156px #fff,455px 655px #fff,798px 72px #fff,1059px 1259px #fff,1402px 1687px #fff,236px 1329px #fff,1455px 786px #fff,146px 1228px #fff,1851px 823px #fff,1062px 100px #fff,1220px 953px #fff,20px 1826px #fff,36px 1063px #fff,1525px 338px #fff,790px 1521px #fff,741px 1099px #fff,288px 1489px #fff,700px 1060px #fff,390px 1071px #fff,411px 1036px #fff,1853px 1072px #fff,1446px 1085px #fff,1164px 874px #fff,924px 925px #fff,291px 271px #fff,1257px 1964px #fff,1580px 1352px #fff,1507px 1216px #fff,211px 956px #fff,985px 1195px #fff,975px 1640px #fff,518px 101px #fff,663px 1395px #fff,914px 532px #fff,145px 1320px #fff,69px 1397px #fff,982px 523px #fff,257px 725px #fff,1599px 831px #fff,1636px 1513px #fff,1250px 1158px #fff,1132px 604px #fff,183px 102px #fff,1057px 318px #fff,1247px 1835px #fff,1983px 1110px #fff,1077px 1455px #fff,921px 1770px #fff,806px 1350px #fff,1938px 1992px #fff,855px 1260px #fff,902px 1345px #fff,658px 1908px #fff,1845px 679px #fff,712px 1482px #fff,595px 950px #fff,1784px 1992px #fff,1847px 1785px #fff,691px 1004px #fff,175px 1179px #fff,1666px 1911px #fff,41px 61px #fff,971px 1080px #fff,1830px 1450px #fff,1351px 1518px #fff,1257px 99px #fff,1395px 1498px #fff,1117px 252px #fff,1779px 597px #fff,1346px 729px #fff,1108px 1144px #fff,402px 691px #fff,72px 496px #fff,1673px 1604px #fff,1497px 974px #fff,1865px 1664px #fff,88px 806px #fff,918px 77px #fff,244px 1118px #fff,256px 1820px #fff,1851px 1840px #fff,605px 1851px #fff,634px 383px #fff,865px 37px #fff,943px 1024px #fff,1951px 177px #fff,1097px 523px #fff,985px 1700px #fff,1243px 122px #fff,768px 1070px #fff,468px 194px #fff,320px 1867px #fff,1850px 185px #fff,380px 1616px #fff,468px 1294px #fff,1122px 1743px #fff,884px 299px #fff,1300px 1917px #fff,1860px 396px #fff,1270px 990px #fff,529px 733px #fff,1975px 1347px #fff,1885px 685px #fff,226px 506px #fff,651px 878px #fff,1323px 680px #fff,1284px 680px #fff,238px 1967px #fff,911px 174px #fff,1111px 521px #fff,1150px 85px #fff,794px 502px #fff,484px 1856px #fff,1809px 368px #fff,112px 953px #fff,590px 1009px #fff,1655px 311px #fff,100px 1026px #fff,1803px 352px #fff,865px 306px #fff,1077px 1019px #fff,1335px 872px #fff,1647px 1298px #fff,1233px 1387px #fff,698px 1036px #fff,659px 1860px #fff,388px 1412px #fff,1212px 458px #fff,755px 1468px #fff,696px 1654px #fff,1144px 60px #fff}.background #stars2{grid-area:stack;width:2px;height:2px;background:rgba(0,0,0,0);-webkit-animation:animStar 100s linear;animation:animStar 100s linear;-webkit-box-shadow:1448px 320px #fff,1775px 1663px #fff,332px 1364px #fff,878px 340px #fff,569px 1832px #fff,1422px 1684px #fff,1946px 1907px #fff,121px 979px #fff,1044px 1069px #fff,463px 381px #fff,423px 112px #fff,523px 1179px #fff,779px 654px #fff,1398px 694px #fff,1085px 1464px #fff,1599px 1869px #fff,801px 1882px #fff,779px 1231px #fff,552px 932px #fff,1057px 1196px #fff,282px 1280px #fff,496px 1986px #fff,1833px 1120px #fff,1802px 1293px #fff,6px 1696px #fff,412px 1902px #fff,605px 438px #fff,24px 1212px #fff,234px 1320px #fff,544px 344px #fff,1107px 170px #fff,1603px 196px #fff,905px 648px #fff,68px 1458px #fff,649px 1969px #fff,744px 675px #fff,1127px 478px #fff,714px 1814px #fff,1486px 526px #fff,270px 1636px #fff,1931px 149px #fff,1807px 378px #fff,8px 390px #fff,1415px 699px #fff,1473px 1211px #fff,1590px 141px #fff,270px 1705px #fff,69px 1423px #fff,1108px 1053px #fff,1946px 128px #fff,371px 371px #fff,1490px 220px #fff,357px 1885px #fff,363px 363px #fff,1896px 1256px #fff,1979px 1050px #fff,947px 1342px #fff,1754px 242px #fff,514px 974px #fff,65px 1477px #fff,1840px 547px #fff,950px 695px #fff,459px 1150px #fff,1124px 1502px #fff,481px 940px #fff,680px 839px #fff,797px 1169px #fff,1977px 1491px #fff,734px 1724px #fff,210px 298px #fff,816px 628px #fff,686px 770px #fff,1721px 267px #fff,1663px 511px #fff,1481px 1141px #fff,582px 248px #fff,1308px 953px #fff,628px 657px #fff,897px 1535px #fff,270px 931px #fff,791px 467px #fff,1336px 1732px #fff,1013px 1653px #fff,1911px 956px #fff,587px 816px #fff,83px 456px #fff,930px 1478px #fff,1587px 1694px #fff,614px 1200px #fff,302px 1782px #fff,1711px 1432px #fff,443px 904px #fff,1666px 714px #fff,1588px 1167px #fff,273px 1075px #fff,1679px 461px #fff,721px 664px #fff,1202px 10px #fff,166px 1126px #fff,331px 1628px #fff,430px 1565px #fff,1585px 509px #fff,640px 38px #fff,822px 837px #fff,1760px 1664px #fff,1122px 1458px #fff,398px 131px #fff,689px 285px #fff,460px 652px #fff,1627px 365px #fff,348px 1648px #fff,819px 1946px #fff,981px 1917px #fff,323px 76px #fff,979px 684px #fff,887px 536px #fff,1348px 1596px #fff,1055px 666px #fff,1402px 1797px #fff,1300px 1055px #fff,937px 238px #fff,1474px 1815px #fff,1144px 1710px #fff,1629px 1087px #fff,911px 919px #fff,771px 819px #fff,403px 720px #fff,163px 736px #fff,1062px 238px #fff,1774px 818px #fff,1874px 1178px #fff,1177px 699px #fff,1244px 1244px #fff,1371px 58px #fff,564px 1515px #fff,1824px 487px #fff,929px 702px #fff,394px 1348px #fff,1161px 641px #fff,219px 1841px #fff,358px 941px #fff,140px 1759px #fff,1019px 1345px #fff,274px 436px #fff,1433px 1605px #fff,1798px 1426px #fff,294px 1848px #fff,1681px 1877px #fff,1344px 1824px #fff,1439px 1632px #fff,161px 1012px #fff,1308px 588px #fff,1789px 582px #fff,721px 1910px #fff,318px 218px #fff,607px 319px #fff,495px 535px #fff,1552px 1575px #fff,1562px 67px #fff,403px 926px #fff,1096px 1800px #fff,1814px 1709px #fff,1882px 1831px #fff,533px 46px #fff,823px 969px #fff,530px 165px #fff,1030px 352px #fff,1681px 313px #fff,338px 115px #fff,1607px 211px #fff,1718px 1184px #fff,1589px 659px #fff,278px 355px #fff,464px 1464px #fff,1165px 277px #fff,950px 694px #fff,1746px 293px #fff,793px 911px #fff,528px 773px #fff,1883px 1694px #fff,748px 182px #fff,1924px 1531px #fff,100px 636px #fff,1473px 1445px #fff,1264px 1244px #fff,850px 1377px #fff,987px 1976px #fff,933px 1761px #fff,922px 1270px #fff,500px 396px #fff,1324px 8px #fff,1967px 1814px #fff,1072px 1401px #fff,961px 37px #fff,156px 81px #fff,1915px 502px #fff,1076px 1846px #fff,152px 1669px #fff,986px 1529px #fff,1667px 1137px #fff;box-shadow:1448px 320px #fff,1775px 1663px #fff,332px 1364px #fff,878px 340px #fff,569px 1832px #fff,1422px 1684px #fff,1946px 1907px #fff,121px 979px #fff,1044px 1069px #fff,463px 381px #fff,423px 112px #fff,523px 1179px #fff,779px 654px #fff,1398px 694px #fff,1085px 1464px #fff,1599px 1869px #fff,801px 1882px #fff,779px 1231px #fff,552px 932px #fff,1057px 1196px #fff,282px 1280px #fff,496px 1986px #fff,1833px 1120px #fff,1802px 1293px #fff,6px 1696px #fff,412px 1902px #fff,605px 438px #fff,24px 1212px #fff,234px 1320px #fff,544px 344px #fff,1107px 170px #fff,1603px 196px #fff,905px 648px #fff,68px 1458px #fff,649px 1969px #fff,744px 675px #fff,1127px 478px #fff,714px 1814px #fff,1486px 526px #fff,270px 1636px #fff,1931px 149px #fff,1807px 378px #fff,8px 390px #fff,1415px 699px #fff,1473px 1211px #fff,1590px 141px #fff,270px 1705px #fff,69px 1423px #fff,1108px 1053px #fff,1946px 128px #fff,371px 371px #fff,1490px 220px #fff,357px 1885px #fff,363px 363px #fff,1896px 1256px #fff,1979px 1050px #fff,947px 1342px #fff,1754px 242px #fff,514px 974px #fff,65px 1477px #fff,1840px 547px #fff,950px 695px #fff,459px 1150px #fff,1124px 1502px #fff,481px 940px #fff,680px 839px #fff,797px 1169px #fff,1977px 1491px #fff,734px 1724px #fff,210px 298px #fff,816px 628px #fff,686px 770px #fff,1721px 267px #fff,1663px 511px #fff,1481px 1141px #fff,582px 248px #fff,1308px 953px #fff,628px 657px #fff,897px 1535px #fff,270px 931px #fff,791px 467px #fff,1336px 1732px #fff,1013px 1653px #fff,1911px 956px #fff,587px 816px #fff,83px 456px #fff,930px 1478px #fff,1587px 1694px #fff,614px 1200px #fff,302px 1782px #fff,1711px 1432px #fff,443px 904px #fff,1666px 714px #fff,1588px 1167px #fff,273px 1075px #fff,1679px 461px #fff,721px 664px #fff,1202px 10px #fff,166px 1126px #fff,331px 1628px #fff,430px 1565px #fff,1585px 509px #fff,640px 38px #fff,822px 837px #fff,1760px 1664px #fff,1122px 1458px #fff,398px 131px #fff,689px 285px #fff,460px 652px #fff,1627px 365px #fff,348px 1648px #fff,819px 1946px #fff,981px 1917px #fff,323px 76px #fff,979px 684px #fff,887px 536px #fff,1348px 1596px #fff,1055px 666px #fff,1402px 1797px #fff,1300px 1055px #fff,937px 238px #fff,1474px 1815px #fff,1144px 1710px #fff,1629px 1087px #fff,911px 919px #fff,771px 819px #fff,403px 720px #fff,163px 736px #fff,1062px 238px #fff,1774px 818px #fff,1874px 1178px #fff,1177px 699px #fff,1244px 1244px #fff,1371px 58px #fff,564px 1515px #fff,1824px 487px #fff,929px 702px #fff,394px 1348px #fff,1161px 641px #fff,219px 1841px #fff,358px 941px #fff,140px 1759px #fff,1019px 1345px #fff,274px 436px #fff,1433px 1605px #fff,1798px 1426px #fff,294px 1848px #fff,1681px 1877px #fff,1344px 1824px #fff,1439px 1632px #fff,161px 1012px #fff,1308px 588px #fff,1789px 582px #fff,721px 1910px #fff,318px 218px #fff,607px 319px #fff,495px 535px #fff,1552px 1575px #fff,1562px 67px #fff,403px 926px #fff,1096px 1800px #fff,1814px 1709px #fff,1882px 1831px #fff,533px 46px #fff,823px 969px #fff,530px 165px #fff,1030px 352px #fff,1681px 313px #fff,338px 115px #fff,1607px 211px #fff,1718px 1184px #fff,1589px 659px #fff,278px 355px #fff,464px 1464px #fff,1165px 277px #fff,950px 694px #fff,1746px 293px #fff,793px 911px #fff,528px 773px #fff,1883px 1694px #fff,748px 182px #fff,1924px 1531px #fff,100px 636px #fff,1473px 1445px #fff,1264px 1244px #fff,850px 1377px #fff,987px 1976px #fff,933px 1761px #fff,922px 1270px #fff,500px 396px #fff,1324px 8px #fff,1967px 1814px #fff,1072px 1401px #fff,961px 37px #fff,156px 81px #fff,1915px 502px #fff,1076px 1846px #fff,152px 1669px #fff,986px 1529px #fff,1667px 1137px #fff}.background #stars2:after{content:"";position:absolute;top:2000px;width:2px;height:2px;background:rgba(0,0,0,0);-webkit-box-shadow:1448px 320px #fff,1775px 1663px #fff,332px 1364px #fff,878px 340px #fff,569px 1832px #fff,1422px 1684px #fff,1946px 1907px #fff,121px 979px #fff,1044px 1069px #fff,463px 381px #fff,423px 112px #fff,523px 1179px #fff,779px 654px #fff,1398px 694px #fff,1085px 1464px #fff,1599px 1869px #fff,801px 1882px #fff,779px 1231px #fff,552px 932px #fff,1057px 1196px #fff,282px 1280px #fff,496px 1986px #fff,1833px 1120px #fff,1802px 1293px #fff,6px 1696px #fff,412px 1902px #fff,605px 438px #fff,24px 1212px #fff,234px 1320px #fff,544px 344px #fff,1107px 170px #fff,1603px 196px #fff,905px 648px #fff,68px 1458px #fff,649px 1969px #fff,744px 675px #fff,1127px 478px #fff,714px 1814px #fff,1486px 526px #fff,270px 1636px #fff,1931px 149px #fff,1807px 378px #fff,8px 390px #fff,1415px 699px #fff,1473px 1211px #fff,1590px 141px #fff,270px 1705px #fff,69px 1423px #fff,1108px 1053px #fff,1946px 128px #fff,371px 371px #fff,1490px 220px #fff,357px 1885px #fff,363px 363px #fff,1896px 1256px #fff,1979px 1050px #fff,947px 1342px #fff,1754px 242px #fff,514px 974px #fff,65px 1477px #fff,1840px 547px #fff,950px 695px #fff,459px 1150px #fff,1124px 1502px #fff,481px 940px #fff,680px 839px #fff,797px 1169px #fff,1977px 1491px #fff,734px 1724px #fff,210px 298px #fff,816px 628px #fff,686px 770px #fff,1721px 267px #fff,1663px 511px #fff,1481px 1141px #fff,582px 248px #fff,1308px 953px #fff,628px 657px #fff,897px 1535px #fff,270px 931px #fff,791px 467px #fff,1336px 1732px #fff,1013px 1653px #fff,1911px 956px #fff,587px 816px #fff,83px 456px #fff,930px 1478px #fff,1587px 1694px #fff,614px 1200px #fff,302px 1782px #fff,1711px 1432px #fff,443px 904px #fff,1666px 714px #fff,1588px 1167px #fff,273px 1075px #fff,1679px 461px #fff,721px 664px #fff,1202px 10px #fff,166px 1126px #fff,331px 1628px #fff,430px 1565px #fff,1585px 509px #fff,640px 38px #fff,822px 837px #fff,1760px 1664px #fff,1122px 1458px #fff,398px 131px #fff,689px 285px #fff,460px 652px #fff,1627px 365px #fff,348px 1648px #fff,819px 1946px #fff,981px 1917px #fff,323px 76px #fff,979px 684px #fff,887px 536px #fff,1348px 1596px #fff,1055px 666px #fff,1402px 1797px #fff,1300px 1055px #fff,937px 238px #fff,1474px 1815px #fff,1144px 1710px #fff,1629px 1087px #fff,911px 919px #fff,771px 819px #fff,403px 720px #fff,163px 736px #fff,1062px 238px #fff,1774px 818px #fff,1874px 1178px #fff,1177px 699px #fff,1244px 1244px #fff,1371px 58px #fff,564px 1515px #fff,1824px 487px #fff,929px 702px #fff,394px 1348px #fff,1161px 641px #fff,219px 1841px #fff,358px 941px #fff,140px 1759px #fff,1019px 1345px #fff,274px 436px #fff,1433px 1605px #fff,1798px 1426px #fff,294px 1848px #fff,1681px 1877px #fff,1344px 1824px #fff,1439px 1632px #fff,161px 1012px #fff,1308px 588px #fff,1789px 582px #fff,721px 1910px #fff,318px 218px #fff,607px 319px #fff,495px 535px #fff,1552px 1575px #fff,1562px 67px #fff,403px 926px #fff,1096px 1800px #fff,1814px 1709px #fff,1882px 1831px #fff,533px 46px #fff,823px 969px #fff,530px 165px #fff,1030px 352px #fff,1681px 313px #fff,338px 115px #fff,1607px 211px #fff,1718px 1184px #fff,1589px 659px #fff,278px 355px #fff,464px 1464px #fff,1165px 277px #fff,950px 694px #fff,1746px 293px #fff,793px 911px #fff,528px 773px #fff,1883px 1694px #fff,748px 182px #fff,1924px 1531px #fff,100px 636px #fff,1473px 1445px #fff,1264px 1244px #fff,850px 1377px #fff,987px 1976px #fff,933px 1761px #fff,922px 1270px #fff,500px 396px #fff,1324px 8px #fff,1967px 1814px #fff,1072px 1401px #fff,961px 37px #fff,156px 81px #fff,1915px 502px #fff,1076px 1846px #fff,152px 1669px #fff,986px 1529px #fff,1667px 1137px #fff;box-shadow:1448px 320px #fff,1775px 1663px #fff,332px 1364px #fff,878px 340px #fff,569px 1832px #fff,1422px 1684px #fff,1946px 1907px #fff,121px 979px #fff,1044px 1069px #fff,463px 381px #fff,423px 112px #fff,523px 1179px #fff,779px 654px #fff,1398px 694px #fff,1085px 1464px #fff,1599px 1869px #fff,801px 1882px #fff,779px 1231px #fff,552px 932px #fff,1057px 1196px #fff,282px 1280px #fff,496px 1986px #fff,1833px 1120px #fff,1802px 1293px #fff,6px 1696px #fff,412px 1902px #fff,605px 438px #fff,24px 1212px #fff,234px 1320px #fff,544px 344px #fff,1107px 170px #fff,1603px 196px #fff,905px 648px #fff,68px 1458px #fff,649px 1969px #fff,744px 675px #fff,1127px 478px #fff,714px 1814px #fff,1486px 526px #fff,270px 1636px #fff,1931px 149px #fff,1807px 378px #fff,8px 390px #fff,1415px 699px #fff,1473px 1211px #fff,1590px 141px #fff,270px 1705px #fff,69px 1423px #fff,1108px 1053px #fff,1946px 128px #fff,371px 371px #fff,1490px 220px #fff,357px 1885px #fff,363px 363px #fff,1896px 1256px #fff,1979px 1050px #fff,947px 1342px #fff,1754px 242px #fff,514px 974px #fff,65px 1477px #fff,1840px 547px #fff,950px 695px #fff,459px 1150px #fff,1124px 1502px #fff,481px 940px #fff,680px 839px #fff,797px 1169px #fff,1977px 1491px #fff,734px 1724px #fff,210px 298px #fff,816px 628px #fff,686px 770px #fff,1721px 267px #fff,1663px 511px #fff,1481px 1141px #fff,582px 248px #fff,1308px 953px #fff,628px 657px #fff,897px 1535px #fff,270px 931px #fff,791px 467px #fff,1336px 1732px #fff,1013px 1653px #fff,1911px 956px #fff,587px 816px #fff,83px 456px #fff,930px 1478px #fff,1587px 1694px #fff,614px 1200px #fff,302px 1782px #fff,1711px 1432px #fff,443px 904px #fff,1666px 714px #fff,1588px 1167px #fff,273px 1075px #fff,1679px 461px #fff,721px 664px #fff,1202px 10px #fff,166px 1126px #fff,331px 1628px #fff,430px 1565px #fff,1585px 509px #fff,640px 38px #fff,822px 837px #fff,1760px 1664px #fff,1122px 1458px #fff,398px 131px #fff,689px 285px #fff,460px 652px #fff,1627px 365px #fff,348px 1648px #fff,819px 1946px #fff,981px 1917px #fff,323px 76px #fff,979px 684px #fff,887px 536px #fff,1348px 1596px #fff,1055px 666px #fff,1402px 1797px #fff,1300px 1055px #fff,937px 238px #fff,1474px 1815px #fff,1144px 1710px #fff,1629px 1087px #fff,911px 919px #fff,771px 819px #fff,403px 720px #fff,163px 736px #fff,1062px 238px #fff,1774px 818px #fff,1874px 1178px #fff,1177px 699px #fff,1244px 1244px #fff,1371px 58px #fff,564px 1515px #fff,1824px 487px #fff,929px 702px #fff,394px 1348px #fff,1161px 641px #fff,219px 1841px #fff,358px 941px #fff,140px 1759px #fff,1019px 1345px #fff,274px 436px #fff,1433px 1605px #fff,1798px 1426px #fff,294px 1848px #fff,1681px 1877px #fff,1344px 1824px #fff,1439px 1632px #fff,161px 1012px #fff,1308px 588px #fff,1789px 582px #fff,721px 1910px #fff,318px 218px #fff,607px 319px #fff,495px 535px #fff,1552px 1575px #fff,1562px 67px #fff,403px 926px #fff,1096px 1800px #fff,1814px 1709px #fff,1882px 1831px #fff,533px 46px #fff,823px 969px #fff,530px 165px #fff,1030px 352px #fff,1681px 313px #fff,338px 115px #fff,1607px 211px #fff,1718px 1184px #fff,1589px 659px #fff,278px 355px #fff,464px 1464px #fff,1165px 277px #fff,950px 694px #fff,1746px 293px #fff,793px 911px #fff,528px 773px #fff,1883px 1694px #fff,748px 182px #fff,1924px 1531px #fff,100px 636px #fff,1473px 1445px #fff,1264px 1244px #fff,850px 1377px #fff,987px 1976px #fff,933px 1761px #fff,922px 1270px #fff,500px 396px #fff,1324px 8px #fff,1967px 1814px #fff,1072px 1401px #fff,961px 37px #fff,156px 81px #fff,1915px 502px #fff,1076px 1846px #fff,152px 1669px #fff,986px 1529px #fff,1667px 1137px #fff}.background #stars3{grid-area:stack;width:3px;height:3px;background:rgba(0,0,0,0);-webkit-animation:animStar 150s linear infinite;animation:animStar 150s linear infinite;-webkit-box-shadow:387px 1878px #fff,760px 1564px #fff,1487px 999px #fff,948px 1828px #fff,1977px 1001px #fff,1284px 1963px #fff,656px 284px #fff,1268px 1635px #fff,1820px 598px #fff,642px 1900px #fff,296px 57px #fff,921px 1620px #fff,476px 1858px #fff,658px 613px #fff,1171px 1363px #fff,1419px 283px #fff,1037px 731px #fff,503px 663px #fff,1562px 463px #fff,383px 1197px #fff,1171px 1233px #fff,876px 1768px #fff,856px 1615px #fff,1375px 1924px #fff,1725px 918px #fff,952px 119px #fff,768px 1212px #fff,992px 1462px #fff,1929px 717px #fff,1947px 755px #fff,1818px 1123px #fff,1896px 1672px #fff,460px 198px #fff,256px 271px #fff,752px 544px #fff,1222px 1859px #fff,1851px 443px #fff,313px 1858px #fff,709px 446px #fff,1546px 697px #fff,674px 1155px #fff,1112px 130px #fff,355px 1790px #fff,1496px 974px #fff,1696px 480px #fff,1316px 1265px #fff,1645px 1063px #fff,1182px 237px #fff,427px 1582px #fff,859px 253px #fff,458px 939px #fff,1517px 1644px #fff,1943px 60px #fff,212px 1650px #fff,966px 1786px #fff,473px 712px #fff,130px 76px #fff,1417px 1186px #fff,909px 1580px #fff,1913px 762px #fff,204px 1143px #fff,1998px 1057px #fff,1468px 1301px #fff,144px 1676px #fff,21px 1601px #fff,382px 1362px #fff,912px 753px #fff,1488px 1405px #fff,802px 156px #fff,174px 550px #fff,338px 1366px #fff,1197px 774px #fff,602px 486px #fff,682px 1877px #fff,348px 1503px #fff,407px 1139px #fff,950px 1400px #fff,922px 1139px #fff,1697px 293px #fff,1238px 1281px #fff,1038px 1197px #fff,376px 1889px #fff,1255px 1680px #fff,1008px 1316px #fff,1538px 1447px #fff,1186px 874px #fff,1967px 640px #fff,1341px 19px #fff,29px 1732px #fff,16px 1650px #fff,1021px 1075px #fff,723px 424px #fff,1175px 41px #fff,494px 1957px #fff,1296px 431px #fff,175px 1507px #fff,831px 121px #fff,498px 1947px #fff,617px 880px #fff,240px 403px #fff;box-shadow:387px 1878px #fff,760px 1564px #fff,1487px 999px #fff,948px 1828px #fff,1977px 1001px #fff,1284px 1963px #fff,656px 284px #fff,1268px 1635px #fff,1820px 598px #fff,642px 1900px #fff,296px 57px #fff,921px 1620px #fff,476px 1858px #fff,658px 613px #fff,1171px 1363px #fff,1419px 283px #fff,1037px 731px #fff,503px 663px #fff,1562px 463px #fff,383px 1197px #fff,1171px 1233px #fff,876px 1768px #fff,856px 1615px #fff,1375px 1924px #fff,1725px 918px #fff,952px 119px #fff,768px 1212px #fff,992px 1462px #fff,1929px 717px #fff,1947px 755px #fff,1818px 1123px #fff,1896px 1672px #fff,460px 198px #fff,256px 271px #fff,752px 544px #fff,1222px 1859px #fff,1851px 443px #fff,313px 1858px #fff,709px 446px #fff,1546px 697px #fff,674px 1155px #fff,1112px 130px #fff,355px 1790px #fff,1496px 974px #fff,1696px 480px #fff,1316px 1265px #fff,1645px 1063px #fff,1182px 237px #fff,427px 1582px #fff,859px 253px #fff,458px 939px #fff,1517px 1644px #fff,1943px 60px #fff,212px 1650px #fff,966px 1786px #fff,473px 712px #fff,130px 76px #fff,1417px 1186px #fff,909px 1580px #fff,1913px 762px #fff,204px 1143px #fff,1998px 1057px #fff,1468px 1301px #fff,144px 1676px #fff,21px 1601px #fff,382px 1362px #fff,912px 753px #fff,1488px 1405px #fff,802px 156px #fff,174px 550px #fff,338px 1366px #fff,1197px 774px #fff,602px 486px #fff,682px 1877px #fff,348px 1503px #fff,407px 1139px #fff,950px 1400px #fff,922px 1139px #fff,1697px 293px #fff,1238px 1281px #fff,1038px 1197px #fff,376px 1889px #fff,1255px 1680px #fff,1008px 1316px #fff,1538px 1447px #fff,1186px 874px #fff,1967px 640px #fff,1341px 19px #fff,29px 1732px #fff,16px 1650px #fff,1021px 1075px #fff,723px 424px #fff,1175px 41px #fff,494px 1957px #fff,1296px 431px #fff,175px 1507px #fff,831px 121px #fff,498px 1947px #fff,617px 880px #fff,240px 403px #fff}.background #stars3:after{content:"";position:absolute;top:2000px;width:3px;height:3px;background:rgba(0,0,0,0);-webkit-box-shadow:387px 1878px #fff,760px 1564px #fff,1487px 999px #fff,948px 1828px #fff,1977px 1001px #fff,1284px 1963px #fff,656px 284px #fff,1268px 1635px #fff,1820px 598px #fff,642px 1900px #fff,296px 57px #fff,921px 1620px #fff,476px 1858px #fff,658px 613px #fff,1171px 1363px #fff,1419px 283px #fff,1037px 731px #fff,503px 663px #fff,1562px 463px #fff,383px 1197px #fff,1171px 1233px #fff,876px 1768px #fff,856px 1615px #fff,1375px 1924px #fff,1725px 918px #fff,952px 119px #fff,768px 1212px #fff,992px 1462px #fff,1929px 717px #fff,1947px 755px #fff,1818px 1123px #fff,1896px 1672px #fff,460px 198px #fff,256px 271px #fff,752px 544px #fff,1222px 1859px #fff,1851px 443px #fff,313px 1858px #fff,709px 446px #fff,1546px 697px #fff,674px 1155px #fff,1112px 130px #fff,355px 1790px #fff,1496px 974px #fff,1696px 480px #fff,1316px 1265px #fff,1645px 1063px #fff,1182px 237px #fff,427px 1582px #fff,859px 253px #fff,458px 939px #fff,1517px 1644px #fff,1943px 60px #fff,212px 1650px #fff,966px 1786px #fff,473px 712px #fff,130px 76px #fff,1417px 1186px #fff,909px 1580px #fff,1913px 762px #fff,204px 1143px #fff,1998px 1057px #fff,1468px 1301px #fff,144px 1676px #fff,21px 1601px #fff,382px 1362px #fff,912px 753px #fff,1488px 1405px #fff,802px 156px #fff,174px 550px #fff,338px 1366px #fff,1197px 774px #fff,602px 486px #fff,682px 1877px #fff,348px 1503px #fff,407px 1139px #fff,950px 1400px #fff,922px 1139px #fff,1697px 293px #fff,1238px 1281px #fff,1038px 1197px #fff,376px 1889px #fff,1255px 1680px #fff,1008px 1316px #fff,1538px 1447px #fff,1186px 874px #fff,1967px 640px #fff,1341px 19px #fff,29px 1732px #fff,16px 1650px #fff,1021px 1075px #fff,723px 424px #fff,1175px 41px #fff,494px 1957px #fff,1296px 431px #fff,175px 1507px #fff,831px 121px #fff,498px 1947px #fff,617px 880px #fff,240px 403px #fff;box-shadow:387px 1878px #fff,760px 1564px #fff,1487px 999px #fff,948px 1828px #fff,1977px 1001px #fff,1284px 1963px #fff,656px 284px #fff,1268px 1635px #fff,1820px 598px #fff,642px 1900px #fff,296px 57px #fff,921px 1620px #fff,476px 1858px #fff,658px 613px #fff,1171px 1363px #fff,1419px 283px #fff,1037px 731px #fff,503px 663px #fff,1562px 463px #fff,383px 1197px #fff,1171px 1233px #fff,876px 1768px #fff,856px 1615px #fff,1375px 1924px #fff,1725px 918px #fff,952px 119px #fff,768px 1212px #fff,992px 1462px #fff,1929px 717px #fff,1947px 755px #fff,1818px 1123px #fff,1896px 1672px #fff,460px 198px #fff,256px 271px #fff,752px 544px #fff,1222px 1859px #fff,1851px 443px #fff,313px 1858px #fff,709px 446px #fff,1546px 697px #fff,674px 1155px #fff,1112px 130px #fff,355px 1790px #fff,1496px 974px #fff,1696px 480px #fff,1316px 1265px #fff,1645px 1063px #fff,1182px 237px #fff,427px 1582px #fff,859px 253px #fff,458px 939px #fff,1517px 1644px #fff,1943px 60px #fff,212px 1650px #fff,966px 1786px #fff,473px 712px #fff,130px 76px #fff,1417px 1186px #fff,909px 1580px #fff,1913px 762px #fff,204px 1143px #fff,1998px 1057px #fff,1468px 1301px #fff,144px 1676px #fff,21px 1601px #fff,382px 1362px #fff,912px 753px #fff,1488px 1405px #fff,802px 156px #fff,174px 550px #fff,338px 1366px #fff,1197px 774px #fff,602px 486px #fff,682px 1877px #fff,348px 1503px #fff,407px 1139px #fff,950px 1400px #fff,922px 1139px #fff,1697px 293px #fff,1238px 1281px #fff,1038px 1197px #fff,376px 1889px #fff,1255px 1680px #fff,1008px 1316px #fff,1538px 1447px #fff,1186px 874px #fff,1967px 640px #fff,1341px 19px #fff,29px 1732px #fff,16px 1650px #fff,1021px 1075px #fff,723px 424px #fff,1175px 41px #fff,494px 1957px #fff,1296px 431px #fff,175px 1507px #fff,831px 121px #fff,498px 1947px #fff,617px 880px #fff,240px 403px #fff}@-webkit-keyframes animStar{from{-webkit-transform:translateY(0);transform:translateY(0)}to{-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}}@keyframes animStar{from{-webkit-transform:translateY(0);transform:translateY(0)}to{-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}}.background:before{content:"";display:block;width:100%;height:100%;position:absolute;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.3);z-index:-1} +.notes-page-skeleton-wrapper{width:100%;height:100vh;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;gap:25px;padding:125px 15% 75px calc(15% - 10px);background:radial-gradient(ellipse at bottom, #1b2735 0%, #090a0f 100%);z-index:100}.notes-page-skeleton-wrapper aside{width:470px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:20px}.notes-page-skeleton-wrapper aside .search-bar-skeleton{width:100%;height:50px;background:-webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.2)), color-stop(rgba(27, 39, 53, 0.3)), to(rgba(0, 0, 0, 0.2)));background:linear-gradient(90deg, rgba(0, 0, 0, 0.2), rgba(27, 39, 53, 0.3), rgba(0, 0, 0, 0.2));-webkit-box-shadow:rgba(0,0,0,.1) 0 8px 24px;box-shadow:rgba(0,0,0,.1) 0 8px 24px;-webkit-animation:skeleton 1s infinite linear;animation:skeleton 1s infinite linear;background-size:200%;border-radius:28px}.notes-page-skeleton-wrapper aside .notes-container-skeleton{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:25px;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%}.notes-page-skeleton-wrapper aside .notes-container-skeleton .note-skeleton{width:100%;height:120px;background:-webkit-gradient(linear, left top, right top, from(rgba(1, 1, 1, 0.2)), color-stop(rgba(27, 39, 53, 0.3)), to(rgba(0, 0, 0, 0.2)));background:linear-gradient(90deg, rgba(1, 1, 1, 0.2), rgba(27, 39, 53, 0.3), rgba(0, 0, 0, 0.2));-webkit-box-shadow:rgba(0,0,0,.1) 0 8px 24px;box-shadow:rgba(0,0,0,.1) 0 8px 24px;-webkit-animation:skeleton 1s infinite linear;animation:skeleton 1s infinite linear;background-size:200%;border-radius:15px}@-webkit-keyframes skeleton{0%{background-position:-100% 0}100%{background-position:100% 0}}@keyframes skeleton{0%{background-position:-100% 0}100%{background-position:100% 0}} +.auth-page-skeleton-wrapper{width:100%;height:100vh;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.auth-page-skeleton-wrapper .auth-form-container-skeleton{position:relative}.auth-page-skeleton-wrapper .auth-form-container-skeleton .auth-form-skeleton{width:768px;height:500px;background:rgba(64,64,64,.15);border:2px solid rgba(255,255,255,.3);-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px);border-radius:30px;-webkit-box-shadow:0 0 15px rgba(0,0,0,.35);box-shadow:0 0 15px rgba(0,0,0,.35);z-index:10;position:relative}.auth-page-skeleton-wrapper .auth-form-container-skeleton::before,.auth-page-skeleton-wrapper .auth-form-container-skeleton::after{width:300px;height:300px;position:absolute;border-radius:50%;content:"";z-index:1}.auth-page-skeleton-wrapper .auth-form-container-skeleton:before{background:-webkit-gradient(linear, left top, left bottom, from(#9b22ea), to(#bf23f6));background:linear-gradient(#9b22ea, #bf23f6);top:-100px;left:-100px}.auth-page-skeleton-wrapper .auth-form-container-skeleton:after{background:-webkit-gradient(linear, left top, left bottom, from(#ff512f), to(#f09819));background:linear-gradient(#ff512f, #f09819);bottom:-100px;right:-100px} +*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}ul[class],ol[class]{padding:0}body,h1,h2,h3,h4,p,pre,ul[class],ol[class],li,figure,figcaption,blockquote,dl,dd{margin:0}body{min-height:100vh;scroll-behavior:smooth;line-height:1.5}ul[class],ol[class]{list-style:none}a:not([class]){-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}img{max-width:100%;display:block}article>*+*{margin-top:1em}input,button,textarea,select{font:inherit}p,span{font-family:inherit}@media(prefers-reduced-motion: reduce){*{-webkit-animation-duration:.01ms !important;animation-duration:.01ms !important;-webkit-animation-iteration-count:1 !important;animation-iteration-count:1 !important;-webkit-transition-duration:.01ms !important;transition-duration:.01ms !important;scroll-behavior:auto !important}} @font-face{font-family:"Roboto";src:url(fc2b5060f7accec5cf74.ttf);font-weight:normal} *{font-family:"Roboto"}body{overflow-x:hidden} diff --git a/dist/main.js b/dist/main.js index 447f3733..47fa6a1e 100644 --- a/dist/main.js +++ b/dist/main.js @@ -1 +1 @@ -(()=>{"use strict";var e={405:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Component=void 0;var a=s(286),r=s(352);function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function n(e,t){for(var s=0;s{function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var s=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=s){var a,r,o,n,i=[],c=!0,d=!1;try{if(o=(s=s.call(e)).next,0===t){if(Object(s)!==s)return;c=!1}else for(;!(c=(a=o.call(s)).done)&&(i.push(a.value),i.length!==t);c=!0);}catch(e){d=!0,r=e}finally{try{if(!c&&null!=s.return&&(n=s.return(),Object(n)!==n))return}finally{if(d)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return r(e,t);var s=Object.prototype.toString.call(e).slice(8,-1);return"Object"===s&&e.constructor&&(s=e.constructor.name),"Map"===s||"Set"===s?Array.from(e):"Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s)?r(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var s=0,a=new Array(t);s{t.Q=void 0;var a=s(405),r=s(578);t.Q={createElement:r.createElement,createText:r.createText,createComponent:r.createComponent,Component:a.Component}},352:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.renderDOM=t.applyUpdate=void 0;var s=function e(t){if("text"==t.kind)return document.createTextNode(t.value);if("component"==t.kind){if(t.instance){var s=e(t.instance.render());return t.instance.notifyMounted(s),s}t.instance=new t.component;var a=e(t.instance.initProps(t.props));return t.instance.notifyMounted(a),a}var r=document.createElement(t.tagname);for(var o in t.props||{})r[o]=t.props[o];return(t.childeren||[]).forEach((function(t){return r.appendChild(e(t))})),r},a=t.applyUpdate=function(e,t){if("skip"==t.kind)return e;if("replace"==t.kind){var a=s(t.newNode);return e.replaceWith(a),t.callback&&t.callback(a),a}if("wholeText"in e)throw new Error("invalid update for Text node");for(var o in t.attributes.remove)e.removeAttribute(o);for(var n in t.attributes.set)e[n]=t.attributes.set[n];return r(e,t.childeren),e},r=function(e,t){for(var r=0,o=0;o{Object.defineProperty(t,"__esModule",{value:!0}),t.createText=t.createElement=t.createComponent=void 0,t.createElement=function(e,t){var s=t.key;delete t.key;for(var a=arguments.length,r=new Array(a>2?a-2:0),o=2;o1&&void 0!==arguments[1]?arguments[1]:"",kind:"text",value:e.toString()}}}},t={};function s(a){var r=t[a];if(void 0!==r)return r.exports;var o=t[a]={exports:{}};return e[a](o,o.exports,s),o.exports}(()=>{var e=s(352),t=s(582);const a=(e,{children:s,...a})=>{if(void 0===s&&(s=[]),"string"!=typeof e)return a.key="key1"in a?a.key1:e.name,t.Q.createComponent(e,a);a.key="key1"in a?a.key1:e,Array.isArray(s)||(s=[s]);for(let e=0;ea(e,{children:t,...s});class o extends t.Q.Component{render(){return a("button",{className:"button "+this.props.className,onclick:e=>{e.preventDefault(),this.props.onClick&&this.props.onClick(e)},children:this.props.label})}}const n=new class{callbacks=[];register(e){this.callbacks.push(e)}dispatch(e,t=null){const s={type:e,payload:t};this.callbacks.forEach((e=>{e(s)}))}};function i(e){const t=atob(e),s=Uint8Array.from(t,(e=>e.codePointAt(0)));return JSON.parse((new TextDecoder).decode(s))}const c="https://you-note.ru/api";var d=function(e){return e.POST="POST",e.GET="GET",e.DELETE="DELETE",e.PUT="PUT",e}(d||{});const l={Request:async(e,t,s)=>{const a={method:e,mode:"cors",credentials:"include",headers:{...s.headers,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(s.body)},r=new URL(c+t);for(const e in s.query)r.searchParams.set(e,s.query[e].toString());try{const e=await fetch(r,a),t={body:null,headers:{},status:503};try{t.body=await e.json()}catch{t.body=null}return t.status=e.status,e.headers.forEach(((e,s)=>{t.headers[s]=e})),t}catch(e){return{body:null,headers:{},status:503}}},Post:async(e,t)=>l.Request(d.POST,e,t),Get:async(e,t)=>l.Request(d.GET,e,t),Put:async(e,t)=>l.Request(d.PUT,e,t),Delete:async(e,t)=>l.Request(d.DELETE,e,t)},h=new class{baseUrl="/auth";Login=async(e,t)=>{const s=await l.Post(this.baseUrl+"/login",{body:{username:e,password:t}});if(200==s.status)return{id:s.body.id,username:s.body.username,create_time:s.body.create_time,image_path:s.body.image_path,jwt:s.headers.authorization};throw Error(s.body.message)};SignUp=async(e,t)=>{const s=await l.Post(this.baseUrl+"/signup",{body:{username:e,password:t}});if(201===s.status)return{id:s.body.id,username:s.body.username,create_time:s.body.create_time,image_path:s.body.image_path,jwt:s.headers.authorization};throw Error(s.body.message)};Logout=async e=>{const t=await l.Delete(this.baseUrl+"/logout",{headers:{Authorization:e}});if(204===t.status)return{message:"ok"};throw Error(t.body.message)};CheckUser=async e=>{if(200===(await l.Get(this.baseUrl+"/check_user",{headers:{Authorization:e}})).status)return u.Get(e);throw Error("not authorized")}},p=new class{baseUrl="/note";GetAll=async(e,t=null)=>{const s=await l.Get(this.baseUrl+"/get_all",{headers:{Authorization:e},query:t});if(200===s.status){for(const e of s.body)e.data=i(e.data);return s.body}throw Error(s.body.message)};Get=async(e,t)=>{const s=await l.Get(this.baseUrl+"/"+e,{headers:{Authorization:t}});if(200===s.status)return s.body.data=i(s.body.data),s.body;throw Error(s.body.message)};Delete=async(e,t)=>(await l.Delete(this.baseUrl+"/"+e+"/delete",{headers:{Authorization:t}})).status;Update=async(e,t)=>{console.log(e);const s=await l.Post(this.baseUrl+"/"+e.id+"/edit",{headers:{Authorization:t},body:{data:e}});return s.body.data=i(s.body.data),s.body}},u=new class{Get=async e=>{const t=await l.Get("/profile/get",{headers:{Authorization:e}});if(200==t.status)return{id:t.body.id,username:t.body.username,create_time:t.body.create_time,image_path:t.body.image_path}};UpdateAvatar=async(e,t)=>{const s=new FormData;s.append("avatar",e);const a={method:d.POST,mode:"cors",credentials:"include",headers:{Authorization:t},body:s},r=await fetch(c+"/profile/update_avatar/",a);return(await r.json()).image_path};UpdatePassword=async(e,t,s)=>{if(console.log("UpdatePassword"),200!=(await l.Post("/profile/update/",{headers:{Authorization:s},body:{description:"string",password:{new:t,old:e}}})).status)throw Error("Неверный пароль")}};class m{callbacks=new Set;SubscribeToStore(e){this.callbacks.add(e)}UnSubscribeToStore(e){this.callbacks.delete(e)}SetState(e){this.state=e(this.state),this.callbacks.forEach((e=>{e(this.state)}))}}class g extends t.Q.Component{render(){return a("img",{src:this.props.src,alt:"",className:this.props.className?this.props.className:"",onclick:this.props.onClick})}}class w extends t.Q.Component{state={open:!0,timer:void 0};componentDidMount(){this.setState((e=>({...e,timer:setTimeout((()=>{this.closeToast()}),3e3)})))}componentWillUnmount(){clearTimeout(this.state.timer)}closeToast=()=>{this.setState((e=>({...e,open:!1}))),setTimeout((()=>{this.props.onHide(this.props.key1)}),300)};formatType(){return this.props.type==v.SUCCESS?"Успех":this.props.type==v.ERROR?"Ошибка":"Инфо"}getIcon(){return this.props.type==v.SUCCESS?"/src/assets/success.svg":this.props.type==v.ERROR?"/src/assets/error.svg":"/src/assets/info.svg"}render(){return r("div",{className:"toast success "+(this.state.open?"":"hide"),style:`bottom: ${this.props.offset}px`,children:[r("div",{className:"toast-content",children:[a(g,{src:this.getIcon(),className:"toast-icon"}),r("div",{className:"content",children:[a("span",{className:"title",children:this.formatType()}),a("span",{className:"message",children:this.props.message})]})]}),a(g,{src:"/src/assets/close.svg",className:"toast-close-btn",onClick:this.closeToast}),a("div",{className:"progress"})]})}}const v={SUCCESS:"success",ERROR:"error"};class f extends t.Q.Component{state={toasts:[]};constructor(){super(),y=this}success(e){this.setupToast(v.SUCCESS,e)}error(e){this.setupToast(v.ERROR,e)}setupToast=(e,t)=>{this.setState((e=>({...e,toasts:e.toasts.map((e=>(e.offset+=100,e)))})));const s={type:e,message:t,id:"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})),offset:25};this.setState((e=>({...e,toasts:e.toasts.concat(s)})))};removeToast=e=>{const t=this.state.toasts.find((t=>t.id==e));this.setState((e=>({...e,toasts:e.toasts.map((s=>(e.toasts.indexOf(t)>e.toasts.indexOf(s)&&(s.offset-=100),s)))}))),this.setState((t=>({...t,toasts:t.toasts.filter((t=>t.id!==e))})))};render(){return a("div",{children:this.state.toasts.map((e=>a(w,{key1:e.id,type:e.type,message:e.message,onHide:this.removeToast,offset:e.offset})))})}}let y;const S=new class extends m{state={JWT:null,username:"",avatarUrl:"",isAuth:!1,errorLoginForm:void 0,errorRegisterForm:void 0,errorUpdatePasswordForm:void 0,updatePasswordFormOpen:!1};constructor(){super(),this.state.JWT=window.localStorage.getItem("Authorization"),this.registerEvents(),this.checkUser()}registerEvents(){n.register((async e=>{switch(e.type){case P.LOGIN:await this.login(e.payload);break;case P.LOGOUT:await this.logout();break;case P.REGISTER:await this.register(e.payload);break;case P.CHECK_USER:await this.checkUser();break;case P.UPDATE_AVATAR:await this.updateAvatar(e.payload);break;case P.UPDATE_PASSWORD:await this.updatePassword(e.payload);break;case P.OPEN_CHANGE_PASSWORD_FORM:this.openChangePasswordForm();break;case P.CLOSE_CHANGE_PASSWORD_FORM:this.closeChangePasswordForm()}}))}async login(e){this.SetState((e=>({...e,errorLoginForm:void 0})));try{const t=await h.Login(e.username,e.password);this.SetState((e=>({...e,JWT:t.jwt,username:t.username,isAuth:!0,avatarUrl:t.image_path}))),localStorage.setItem("Authorization",this.state.JWT),console.log("login successfull"),ee.go("/notes")}catch(e){console.log(e),this.SetState((e=>({...e,errorLoginForm:"Неправильный логин или пароль"})))}}async logout(){try{await h.Logout(this.state.JWT),this.SetState((e=>({...e,isAuth:!1,username:"",avatarUrl:""}))),console.log("logout successful"),ee.go("/")}catch(e){console.log(e)}}async register(e){this.SetState((e=>({...e,errorRegisterForm:void 0})));try{const t=await h.SignUp(e.username,e.password);this.SetState((e=>({...e,isAuth:!0,username:t.username,avatarUrl:t.image_path,JWT:t.jwt}))),localStorage.setItem("Authorization",this.state.JWT),console.log("signup successfull"),ee.go("/notes")}catch(e){console.log(e),console.log("username already taken"),this.SetState((e=>({...e,errorRegisterForm:"Неправильный пароль"})))}}async checkUser(){try{const e=await h.CheckUser(this.state.JWT);this.SetState((t=>({...t,isAuth:!0,username:e.username,avatarUrl:e.image_path})))}catch(e){console.log("не зареган"),console.log(e)}}async updateAvatar(e){const t=await u.UpdateAvatar(e,this.state.JWT);this.SetState((e=>({...e,avatarUrl:t})))}async updatePassword({oldPassword:e,newPassword:t}){try{await u.UpdatePassword(e,t,this.state.JWT),y.success("Пароль успешно изменен"),this.closeChangePasswordForm()}catch(e){"Неверный пароль"==e.message&&(y.error("Неверный пароль"),this.SetState((e=>({...e,errorUpdatePasswordForm:"Неправильный пароль"}))))}}openChangePasswordForm(){this.SetState((e=>({...e,updatePasswordFormOpen:!0})))}closeChangePasswordForm(){this.SetState((e=>({...e,updatePasswordFormOpen:!1,errorUpdatePasswordForm:void 0})))}},P={LOGIN:"LOGIN",LOGOUT:"LOGOUT",REGISTER:"REGISTER",CHECK_USER:"CHECK_USER",UPDATE_AVATAR:"UPDATE_AVATAR",UPDATE_PASSWORD:"UPDATE_PASSWORD",OPEN_CHANGE_PASSWORD_FORM:"OPEN_CHANGE_PASSWORD_FORM",CLOSE_CHANGE_PASSWORD_FORM:"CLOSE_CHANGE_PASSWORD_FORM"};class b extends t.Q.Component{componentDidMount(){document.title="Главная";const e=new IntersectionObserver((function(e,t){e.forEach((e=>{e.isIntersecting&&(e.target.classList.add("animate"),t.unobserve(e.target))}))}));document.querySelectorAll(".second .cards-container .card").forEach((t=>{e.observe(t)}))}render(){return r("div",{className:"home",children:[a("section",{className:"first",children:r("div",{className:"text-container",children:[a("h1",{children:"YouNote - современный сервис для ведения заметок"}),a(o,{onClick:()=>{ee.go(S.state.isAuth?"/notes":"/login")},label:"Попробовать"})]})}),r("section",{className:"second",children:[a("h2",{children:"Функции и возможности"}),r("div",{className:"cards-container",children:[r("div",{className:"card",children:[a("img",{src:"./src/assets/notes.png",alt:""}),a("h3",{children:"Многофункциональность"}),a("span",{children:"Сервис может использоваться для любых задач: планирование досуга, ведение конспектов, организация командной работы"})]}),r("div",{className:"card",children:[a("img",{src:"./src/assets/accessibility.png",alt:""}),a("h3",{children:"Доступность"}),a("span",{children:"Можно получить доступ к своим записям, имея под рукой любое устройство с доступом к интернет"})]}),r("div",{className:"card",children:[a("img",{src:"./src/assets/success.png",alt:""}),a("h3",{children:"Удобство"}),a("span",{children:"Простой, минималистичный и интуитивно понятный интерфейс дает возможность комфортного ведения заметок любым пользователем"})]}),r("div",{className:"card",children:[a("img",{src:"./src/assets/personalization.png",alt:""}),a("h3",{children:"Персонализация"}),a("span",{children:"Сервис позволяет оформлять записи, дополняя их картинками, оформляя заметки в соответствии с личными предпочтениями"})]})]})]})]})}}class N extends t.Q.Component{props={err:"Error"};render(){return a("h1",{children:this.props.err})}}class E extends t.Q.Component{state={};componentDidMount(){this.setState((e=>({...e,type:this.props.type?this.props.type:"text",placeholder:this.props.placeholder?this.props.placeholder:"",isPassword:"password"==this.props.type,icon:this.props.icon?this.props.icon:"",hasIcon:null!=this.props.icon})))}toggleInputType=()=>{this.setState((e=>({...e,type:"password"==e.type?"text":"password"})))};handleChange=e=>{this.props.onChange&&this.props.onChange(e.target.value)};render(){return r("div",{className:"input-container "+(this.props.validationResult?"success":"")+(this.props.error?"error":""),children:[a("input",{type:this.state.type,placeholder:this.state.placeholder,value:this.props.value,oninput:this.handleChange}),a("div",{className:"errors-container",children:""!=this.props.error?this.props.error:""}),this.state.isPassword?r("div",{className:"password-toggle-btn-container",onclick:this.toggleInputType,children:[a("img",{className:"password-toggle-btn show-btn",src:"/src/assets/eye-slash.svg",alt:""}),a("img",{className:"password-toggle-btn hide-btn",src:"/src/assets/eye.svg",alt:""})]}):"",this.state.hasIcon?a("img",{className:"icon",src:this.state.icon,alt:""}):""]})}}const k=e=>{for(let t=0;t=97&&e.charCodeAt(t)<=122||e.charCodeAt(t)>=64&&e.charCodeAt(t)<=90||e.charCodeAt(t)>=48&&e.charCodeAt(t)<=57||e.charCodeAt(t)>=35&&e.charCodeAt(t)<=38))return C(!1,"Пароль должен содержать только латинские символы, цифры или символы #$%&");return/[a-zA-Z]/g.test(e)?""===e?C(!1,"Пароль не может быть пустым"):e.length<8?C(!1,"Пароль должен быть не менее 8 символов"):e.length>20?C(!1,"Пароль должен быть короче 20 символов"):C(!0):C(!1,"Пароль должен содержать хотя бы одну букву")},R=e=>{for(let t=0;t=97&&e.charCodeAt(t)<=122||e.charCodeAt(t)>=64&&e.charCodeAt(t)<=90||e.charCodeAt(t)>=48&&e.charCodeAt(t)<=57))return C(!1,"Логин должен содержать только латинские символы или цифры");return""===e?C(!1,"Логин не может быть пустым"):e.length<4?C(!1,"Логин должен быть не менее 4 символов"):e.length>12?C(!1,"Логин должен быть короче 12 символов"):C(!0)},C=(e,t=null)=>({result:e,message:t});class O extends t.Q.Component{state={errorLogin:"",loginValidationResult:!1,login:"",errorPassword:"",passwordValidationResult:!1,password:""};componentDidMount(){S.SubscribeToStore(this.updateState)}componentWillUnmount(){S.UnSubscribeToStore(this.updateState)}updateState=e=>{void 0!==e.errorLoginForm&&(this.setLoginError(e.errorLoginForm),this.setLoginValidated(!1),this.setPasswordError(e.errorLoginForm),this.setPasswordValidated(!1))};handleSubmit=()=>{this.checkLogin(),this.checkPassword(),this.state.loginValidationResult&&this.state.passwordValidationResult&&n.dispatch(P.LOGIN,{username:this.state.login,password:this.state.password})};setLoginValidated=e=>{this.setState((t=>({...t,loginValidationResult:e})))};setLogin=e=>{this.setState((t=>({...t,login:e}))),this.checkLogin()};checkLogin=()=>{const{message:e,result:t}=R(this.state.login);this.setLoginValidated(t),t?this.setLoginError(""):this.setLoginError(e)};setLoginError=e=>{this.setState((t=>({...t,errorLogin:e})))};setPassword=e=>{this.setState((t=>({...t,password:e}))),this.checkPassword()};checkPassword=()=>{const{message:e,result:t}=k(this.state.password);this.setPasswordValidated(t),t?this.setPasswordError(""):this.setPasswordError(e)};setPasswordError=e=>{this.setState((t=>({...t,errorPassword:e})))};setPasswordValidated=e=>{this.setState((t=>({...t,passwordValidationResult:e})))};render(){return r("form",{className:"login-form",children:[a("h3",{children:"Вход"}),a(E,{type:"text",placeholder:"Введите логин",icon:"src/assets/user.png",value:this.state.login,error:this.state.errorLogin,validationResult:this.state.loginValidationResult,onChange:this.setLogin}),a(E,{type:"password",placeholder:"Введите пароль",icon:"src/assets/password.png",value:this.state.password,error:this.state.errorPassword,validationResult:this.state.passwordValidationResult,onChange:this.setPassword}),a(o,{label:"Войти",onClick:this.handleSubmit})]})}}class T extends t.Q.Component{state={login:"",errorLogin:"",loginValidationResult:!1,password:"",errorPassword:"",passwordValidationResult:!1,repeatPassword:"",errorRepeatPassword:"",repeatPasswordValidationResult:!1};componentDidMount(){S.SubscribeToStore(this.updateState)}componentWillUnmount(){S.UnSubscribeToStore(this.updateState)}updateState=e=>{void 0!==e.errorRegisterForm&&(this.setLoginError(e.errorRegisterForm),this.setLoginValidated(!1))};handleSubmit=()=>{this.state.loginValidationResult&&this.state.passwordValidationResult&&this.state.repeatPasswordValidationResult&&n.dispatch(P.REGISTER,{username:this.state.login,password:this.state.password})};setLoginValidated=e=>{this.setState((t=>({...t,loginValidationResult:e})))};setLogin=e=>{this.setState((t=>({...t,login:e})));const{message:t,result:s}=R(e);this.setLoginValidated(s),s?this.setLoginError(""):this.setLoginError(t)};setLoginError=e=>{this.setState((t=>({...t,errorLogin:e})))};setPassword=e=>{if(this.setState((t=>({...t,password:e}))),this.state.password!=this.state.repeatPassword)return this.setRepeatPasswordError("Пароли не совпадают"),this.setPasswordError("Пароли не совпадают"),this.setPasswordValidated(!1),void this.setRepeatPasswordValidated(!1);const{message:t,result:s}=k(e);s?(this.setPasswordValidated(!0),this.setRepeatPasswordValidated(!0),this.setPasswordError(""),this.setRepeatPasswordError("")):(this.setPasswordValidated(!1),this.setPasswordError(t))};setPasswordError=e=>{this.setState((t=>({...t,errorPassword:e})))};setPasswordValidated=e=>{this.setState((t=>({...t,passwordValidationResult:e})))};setRepeatPassword=e=>{if(this.setState((t=>({...t,repeatPassword:e}))),this.state.password!=this.state.repeatPassword)return this.setRepeatPasswordError("Пароли не совпадают"),this.setPasswordError("Пароли не совпадают"),this.setPasswordValidated(!1),void this.setRepeatPasswordValidated(!1);const{message:t,result:s}=k(e);s?(this.setPasswordValidated(!0),this.setRepeatPasswordValidated(!0),this.setRepeatPasswordError(""),this.setPasswordError("")):(this.setRepeatPasswordValidated(!1),this.setRepeatPasswordError(t))};setRepeatPasswordError=e=>{this.setState((t=>({...t,errorRepeatPassword:e})))};setRepeatPasswordValidated=e=>{this.setState((t=>({...t,repeatPasswordValidationResult:e})))};render(){return r("form",{className:"register-form",children:[a("h3",{children:"Регистрация"}),a(E,{type:"text",placeholder:"Придумайте логин",icon:"/src/assets/user.png",onChange:this.setLogin,value:this.state.login,error:this.state.errorLogin,validationResult:this.state.loginValidationResult}),a(E,{type:"password",placeholder:"Придумайте пароль",icon:"src/assets/password.png",value:this.state.password,onChange:this.setPassword,error:this.state.errorPassword,validationResult:this.state.passwordValidationResult}),a(E,{type:"password",placeholder:"Повторите пароль",icon:"src/assets/password.png",value:this.state.repeatPassword,onChange:this.setRepeatPassword,error:this.state.errorRepeatPassword,validationResult:this.state.repeatPasswordValidationResult}),a(o,{label:"Войти",onClick:this.handleSubmit})]})}}class A extends t.Q.Component{state={selectedForm:"login",toggled:!1};componentDidMount(){this.setState((e=>({...e,selectedForm:window.location.pathname.replace("/","")}))),document.title="login"===this.state.selectedForm?"Вход":"Регистрация"}toggleForm=()=>{this.setState((e=>({selectedForm:"login"===e.selectedForm?"register":"login",toggled:!0}))),history.pushState(null,null,this.state.selectedForm),document.title="login"===this.state.selectedForm?"Вход":"Регистрация"};render(){return a("div",{className:"auth-page-wrapper "+(window.location.pathname.includes("login")?"login"===this.state.selectedForm?"":"active":this.state.toggled?"":"active"),children:a("div",{className:"glassmorphism-container",children:r("div",{className:"auth-container",children:[a("div",{className:"form-container sign-in",children:a(O,{})}),a("div",{className:"form-container sign-up"+(this.state.toggled?" fade-left":"")+(window.location.pathname.includes("login")&&this.state.toggled?" fade-right":""),children:a(T,{})}),a("div",{className:"toggle-container",children:r("div",{className:"toggle",children:[r("div",{className:"toggle-panel toggle-left",children:[a("h2",{children:"Уже есть аккаунт?"}),a(o,{label:"Войти",onClick:this.toggleForm})]}),r("div",{className:"toggle-panel toggle-right",children:[a("h2",{children:"Ещё нет аккаунта?"}),a(o,{label:"Зарегистрироваться",onClick:this.toggleForm})]})]})})]})})})}}class x extends t.Q.Component{state={id:0,title:"",content:"",update_time:""};componentDidMount(){this.setState((e=>{return{...e,id:this.props.note.id,title:this.props.note.data.title,content:(s=this.props.note.data.content,50,s.length>50?s.slice(0,49)+"...":s),update_time:(t=this.props.note.update_time,new Intl.DateTimeFormat("ru",{month:"short",day:"numeric",hour:"numeric",minute:"numeric",hourCycle:"h23"}).format(new Date(t)).replace(",",""))};var t,s}))}render(){return r("div",{className:"note-container "+(this.props.selected?"selected":""),id:this.state.id,children:[a("h3",{children:this.state.title}),a("p",{children:this.state.content}),a("span",{className:"update-time",children:this.state.update_time})]})}}class U extends t.Q.Component{handleChange=e=>{this.props.onChange&&this.props.onChange(e.target.value)};render(){return r("div",{className:"search",children:[a("input",{type:"text",className:"search-input",placeholder:"Поиск...",oninput:this.handleChange}),a("img",{src:"/src/assets/search.svg",alt:"",className:"search-icon"})]})}}const _="SELECT_NOTE",L="SEARCH_NOTES",D="LOAD_NOTES",V="CLOSE_NOTE",M="EXIT_NOTES_PAGE",F="OPEN_DELETE_NOTE_DIALOG",j="CLOSE_DELETE_NOTE_DIALOG",W="DELETE_NOTE",G="SAVE_NOTE",Q=new class extends m{state={notes:[],selectedNote:void 0,query:"",offset:0,count:10,modalOpen:!1,saving:!1};constructor(){super(),this.registerEvents()}registerEvents(){n.register((async e=>{switch(e.type){case _:await this.selectNote(e.payload);break;case V:this.closeNote();break;case L:await this.searchNotes(e.payload);break;case D:await this.loadNotes();break;case M:this.exit();break;case F:this.openModal();break;case j:this.closeModal();break;case W:await this.deleteNote();break;case G:await this.saveNote(e.payload)}}))}openModal(){this.SetState((e=>({...e,modalOpen:!0})))}closeModal(){this.SetState((e=>({...e,modalOpen:!1})))}exit(){this.SetState((e=>({...e,query:"",offset:0,selectedNote:void 0,notes:[]})))}closeNote(){this.SetState((e=>({...e,selectedNote:void 0})))}async selectNote(e){const t=await p.Get(e,S.state.JWT);this.SetState((e=>({...e,selectedNote:t})))}async init(){await this.fetchNotes()}async searchNotes(e){this.SetState((t=>({...t,offset:0,query:e}))),await this.fetchNotes(!0)}async loadNotes(){this.SetState((e=>({...e,offset:e.offset+e.count}))),await this.fetchNotes()}async fetchNotes(e=!1){const t={title:this.state.query,offset:this.state.offset,count:this.state.count},s=await p.GetAll(S.state.JWT,t);this.SetState((t=>({...t,notes:e?s:t.notes.concat(s)})))}async deleteNote(){204==await p.Delete(this.state.selectedNote.id,S.state.JWT)&&(this.SetState((e=>({...e,notes:e.notes.filter((e=>e.id!==this.state.selectedNote.id))}))),this.closeNote())}async saveNote(e){if(this.state.selectedNote.id==e.id){const t=await p.Update(e,S.state.JWT);console.log(t),y.success("Заметка успешно сохранена")}}};class I extends t.Q.Component{state={open:!1,selectedNote:void 0};componentDidMount(){Q.SubscribeToStore(this.updateState);const e=function(e,t){let s;return function(){clearTimeout(s),s=setTimeout((()=>e.apply(this)),1e3)}}(this.handleKeypress);window.addEventListener("keypress",e)}handleKeypress=()=>{if(document.activeElement.isContentEditable){const e=document.querySelector(".note-title"),t=document.querySelector(".note-content > span"),s={id:this.state.selectedNote.id,title:e.innerText,content:t.innerText};n.dispatch(G,s)}};closeEditor=()=>{n.dispatch(V)};updateState=e=>{this.setState((t=>({...t,selectedNote:e.selectedNote,open:void 0!==e.selectedNote})))};deleteNote=()=>{n.dispatch(F)};render(){return r("div",{className:"note-editor "+(this.state.open?"active":""),children:[r("div",{className:"top-panel",children:[a("div",{className:"left-container"}),r("div",{className:"right-container",children:[a(g,{src:"/src/assets/trash.svg",className:"icon",onClick:this.deleteNote}),a(g,{src:"/src/assets/close.svg",className:"icon",onClick:this.closeEditor})]})]}),r("div",{className:"bottom-panel",children:[a("div",{className:"note-title-container",contentEditable:"true",children:a("h3",{className:"note-title",children:this.state.selectedNote?.data.title})}),a("div",{className:"note-content",contentEditable:"true",children:a("span",{children:this.state.selectedNote?.data.content})}),a("div",{className:"note-save-indicator"})]})]})}}class q extends t.Q.Component{state={open:!1};componentDidMount(){Q.SubscribeToStore(this.updateState),document.addEventListener("click",this.handleClickOutside,!0)}handleClickOutside=e=>{e.target.classList.contains("overlay")&&n.dispatch(j)};componentWillUnmount(){Q.UnSubscribeToStore(this.updateState),document.removeEventListener("click",this.handleClickOutside,!0)}updateState=e=>{this.setState((t=>({...t,open:e.modalOpen})))};closeModal=()=>{n.dispatch(j)};deleteNote=()=>{n.dispatch(W),n.dispatch(j)};render(){return r("div",{className:"modal-wrapper "+(this.state.open?"active":""),children:[a("div",{className:"overlay"}),r("div",{className:"modal-content",children:[a("h2",{children:"Удалить заметку?"}),a("span",{children:"Заметка и данные в ней будут удалены без возможности восстановления"}),r("div",{className:"buttons-container",children:[a(o,{label:"Удалить",onClick:this.deleteNote}),a(o,{label:"Отменить",className:"cancel-btn",onClick:this.closeModal})]}),a(g,{src:"/src/assets/close.svg",className:"close-modal-btn",onClick:this.closeModal})]})]})}}class z extends t.Q.Component{state={notes:[],selectedNote:void 0};componentDidMount(){document.title="Заметки",Q.SubscribeToStore(this.updateState),Q.init().then((()=>{this.createObserver()}))}componentWillUnmount(){n.dispatch(M),Q.UnSubscribeToStore(this.updateState)}updateState=e=>{this.setState((t=>(t.notes.length>0&&t.notes.length{let t;e.target.matches(".note-container")?t=e.target.id:e.target.matches(".note-container *")&&(t=e.target.parentNode.id),t&&n.dispatch(_,t)};createObserver(){new IntersectionObserver((function(e,t){e.forEach((e=>{e.isIntersecting&&(n.dispatch(D),t.unobserve(e.target))}))})).observe(document.querySelector(".note-container:last-child"))}searchNotes=e=>{n.dispatch(L,e)};render(){return r("div",{className:"notes-page-wrapper "+(this.state.selectedNote?"active":""),children:[r("aside",{children:[a(q,{}),a(U,{onChange:this.searchNotes}),a("div",{className:"notes-container",onclick:this.handleSelectNote,children:this.state.notes.map((e=>a(x,{key1:e.id,note:e,selected:this.state.selectedNote?.id==e.id})))})]}),a(I,{})]})}}class J extends t.Q.Component{handleClick(){ee.go("/")}render(){return a("div",{className:"logo-wrapper",onclick:this.handleClick,children:a("img",{src:"src/assets/logo.png",alt:""})})}}class H extends t.Q.Component{state={password:"",errorPassword:"",passwordValidationResult:!1,repeatPassword:"",errorRepeatPassword:"",repeatPasswordValidationResult:!1,open:!1};componentDidMount(){S.SubscribeToStore(this.updateState),document.addEventListener("click",this.handleClickOutside,!0)}componentWillUnmount(){S.UnSubscribeToStore(this.updateState),document.removeEventListener("click",this.handleClickOutside,!0)}handleClickOutside=e=>{e.target.classList.contains("overlay")&&this.closeModal()};updateState=e=>{this.setState((t=>({...t,open:e.updatePasswordFormOpen}))),this.state.open||setTimeout((()=>{this.setState((()=>({password:"",errorPassword:"",passwordValidationResult:!1,repeatPassword:"",errorRepeatPassword:"",repeatPasswordValidationResult:!1})))}),500)};closeModal=()=>{n.dispatch(P.CLOSE_CHANGE_PASSWORD_FORM)};setPassword=e=>{this.setState((t=>({...t,password:e}))),this.checkPassword(),this.checkRepeatPassword()};checkPassword=()=>{if(this.state.password.length>0&&this.state.password==this.state.repeatPassword)return this.setRepeatPasswordError("Пароли совпадают"),this.setPasswordError("Пароли совпадают"),this.setPasswordValidated(!1),void this.setRepeatPasswordValidated(!1);const{message:e,result:t}=k(this.state.password);t?(this.setPasswordValidated(!0),this.setPasswordError("")):(this.setPasswordValidated(!1),this.setPasswordError(e))};setPasswordError=e=>{this.setState((t=>({...t,errorPassword:e})))};setPasswordValidated=e=>{this.setState((t=>({...t,passwordValidationResult:e})))};setRepeatPassword=e=>{this.setState((t=>({...t,repeatPassword:e}))),this.checkPassword(),this.checkRepeatPassword()};checkRepeatPassword=()=>{if(this.state.repeatPassword.length>0&&this.state.password==this.state.repeatPassword)return this.setRepeatPasswordError("Пароли совпадают"),this.setPasswordError("Пароли совпадают"),this.setPasswordValidated(!1),void this.setRepeatPasswordValidated(!1);const{message:e,result:t}=k(this.state.repeatPassword);t?(this.setRepeatPasswordValidated(!0),this.setRepeatPasswordError("")):(this.setRepeatPasswordValidated(!1),this.setRepeatPasswordError(e))};setRepeatPasswordError=e=>{this.setState((t=>({...t,errorRepeatPassword:e})))};setRepeatPasswordValidated=e=>{this.setState((t=>({...t,repeatPasswordValidationResult:e})))};handleSubmit=()=>{this.checkPassword(),this.checkRepeatPassword(),this.state.passwordValidationResult&&this.state.repeatPasswordValidationResult&&n.dispatch(P.UPDATE_PASSWORD,{oldPassword:this.state.password,newPassword:this.state.repeatPassword})};render(){return r("div",{className:"modal-wrapper "+(this.state.open?"active":""),children:[a("div",{className:"overlay"}),r("div",{className:"modal-content change-password-form",children:[a("h2",{children:"Форма изменения пароля"}),a(E,{placeholder:"Старый пароль",icon:"src/assets/password.png",value:this.state.password,onChange:this.setPassword,error:this.state.errorPassword,validationResult:this.state.passwordValidationResult}),a(E,{placeholder:"Новый пароль",icon:"src/assets/password.png",value:this.state.repeatPassword,onChange:this.setRepeatPassword,error:this.state.errorRepeatPassword,validationResult:this.state.repeatPasswordValidationResult}),a(o,{label:"Изменить",onClick:this.handleSubmit}),a(g,{src:"/src/assets/close.svg",className:"close-modal-btn",onClick:this.closeModal})]})]})}}class K extends t.Q.Component{state={open:!1,inUpload:!1};componentDidMount(){document.addEventListener("click",this.handleClickOutside,!0)}componentWillUnmount(){document.removeEventListener("click",this.handleClickOutside,!0)}handleClickOutside=e=>{document.querySelector(".toast")?.contains(e.target)||document.querySelector(".toggle-profile-button")?.contains(e.target)||document.querySelector(".popup-content")?.contains(e.target)||document.querySelector(".modal-wrapper")?.contains(e.target)||this.close()};close=()=>{this.setState((e=>({...e,open:!1})))};toggleOpen=()=>{this.setState((e=>({...e,open:!e.open})))};handleLogout=async()=>{n.dispatch(P.LOGOUT)};handlePhotoUpload=e=>{const t=e.target.files[0];if(t.size>2097152)return y.error("Фото слишком большое"),console.log(e.target),void(e.target.value=null);this.setState((e=>({...e,inUpload:!0}))),n.dispatch(P.UPDATE_AVATAR,t),setTimeout((()=>{this.setState((e=>({...e,inUpload:!1}))),e.target.value=null}),3e3)};openModal=()=>{n.dispatch(P.OPEN_CHANGE_PASSWORD_FORM)};render(){return r("div",{className:"user-profile-wrapper "+(this.state.open?"open":""),children:[r("div",{className:"toggle-profile-button",onclick:this.toggleOpen,children:[a("div",{className:"slider one"}),a("div",{className:"slider two"}),a("div",{className:"slider three"})]}),a("div",{className:"panel",children:r("div",{className:"popup-content",children:[r("div",{className:"user-avatar-container",children:[a(g,{src:"https://you-note.ru/images/"+this.props.avatarUrl,className:"user-avatar "+(this.state.inUpload?"loading":"")}),r("form",{className:"upload-preview",children:[a("input",{type:"file",accept:".jpg,.png",id:"upload-image-input",hidden:"true",onchange:this.handlePhotoUpload}),a("label",{htmlFor:"upload-image-input"}),a(g,{src:"src/assets/photo.svg",className:"upload-preview-icon"})]}),r("div",{className:"progress-wrapper "+(this.state.inUpload?"active":""),children:[a("div",{className:"inner"}),r("div",{className:"checkmark",children:[a("span",{}),a("span",{})]}),r("div",{className:"circle",children:[a("div",{className:"bar left",children:a("div",{className:"progress"})}),a("div",{className:"bar right",children:a("div",{className:"progress"})})]})]})]}),a("span",{className:"username",children:S.state.username}),a("span",{className:"change-password-btn",onclick:this.openModal,children:"Изменить пароль"}),a(o,{label:"Выйти",className:"logout-btn",onClick:this.handleLogout})]})}),a(H,{})]})}}class $ extends t.Q.Component{state={isAuth:!1,avatarUrl:""};componentDidMount(){S.SubscribeToStore(this.updateState)}updateState=e=>{this.setState((t=>({...t,isAuth:e.isAuth,avatarUrl:e.avatarUrl})))};render(){return r("header",{id:"header",children:[a(J,{}),this.state.isAuth?a(K,{avatarUrl:this.state.avatarUrl}):this.props.currPage!==A?a(o,{label:"Вход",onClick:()=>ee.go("/login")}):""]})}}class Y extends t.Q.Component{render(){return r("div",{className:"background",children:[a("div",{className:"parallax-bg"}),a("div",{id:"stars"}),a("div",{id:"stars2"}),a("div",{id:"stars3"})]})}}class B extends t.Q.Component{render(){return a("div",{className:"notes-page-skeleton-wrapper",children:r("aside",{children:[a("div",{className:"search-bar-skeleton"}),r("div",{className:"notes-container-skeleton",children:[a("div",{className:"note-skeleton"}),a("div",{className:"note-skeleton"}),a("div",{className:"note-skeleton"}),a("div",{className:"note-skeleton"})]})]})})}}const X=B;class Z extends t.Q.Component{state={currPage:b,PageProps:{}};constructor(){super(),ee=this,this.pages=new Map,this.initPages()}componentDidMount(){const e=window.location.pathname;window.addEventListener("popstate",(()=>{this.go(window.location.pathname)})),this.go(e)}initPages=()=>{this.pages["/"]={page:b,pageProps:{}},this.pages["/login"]={page:A,pageProps:{needAuth:!1}},this.pages["/register"]={page:A,pageProps:{needAuth:!1}},this.pages["/notes"]={page:z,pageProps:{needAuth:!0}}};go(e){const t=this.pages[e];history.pushState({path:e},"",e),void 0!==t?void 0!==t.loader?t.loader().then((e=>{this.setState((s=>({...s,currPage:t.page,PageProps:e})))})).catch((e=>{this.setState((t=>({...t,currPage:N,PageProps:{err:e}})))})):this.setState((e=>({...e,currPage:t.page}))):this.setState((e=>({...e,currPage:N,PageProps:{err:"404 NotFound"}})))}render(){return r("div",{children:[a(f,{}),a($,{currPage:this.state.currPage}),t.Q.createComponent(this.state.currPage,{...this.state.PageProps,key:this.state.currPage.name}),this.state.currPage!==z&&this.state.currPage!==X?a(Y,{currPage:this.state.currPage}):""]})}}let ee;class te extends t.Q.Component{render(){return a(Z,{})}}(0,e.renderDOM)("root",t.Q.createComponent(te,{}))})()})(); \ No newline at end of file +!function(){"use strict";var e={405:function(e,t,s){Object.defineProperty(t,"__esModule",{value:!0}),t.Component=void 0;var a=s(286),o=s(352);function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function n(e,t){for(var s=0;se.length)&&(t=e.length);for(var s=0,a=new Array(t);s2?a-2:0),r=2;r1&&void 0!==arguments[1]?arguments[1]:"",kind:"text",value:e.toString()}}}},t={};function s(a){var o=t[a];if(void 0!==o)return o.exports;var r=t[a]={exports:{}};return e[a](r,r.exports,s),r.exports}!function(){var e=s(352),t=s(582);const a=(e,{children:s,...a})=>{if(void 0===s&&(s=[]),"string"!=typeof e)return a.key="key1"in a?a.key1:e.name,t.Q.createComponent(e,a);a.key="key1"in a?a.key1:e,Array.isArray(s)||(s=[s]);for(let e=0;ea(e,{children:t,...s});class r extends t.Q.Component{render(){return a("button",{className:"button "+this.props.className,onclick:e=>{e.preventDefault(),this.props.onClick&&this.props.onClick(e)},children:this.props.label})}}const n=new class{callbacks=[];register(e){this.callbacks.push(e)}dispatch(e,t=null){const s={type:e,payload:t};this.callbacks.forEach((e=>{e(s)}))}};function i(e){const t=atob(e),s=Uint8Array.from(t,(e=>e.codePointAt(0)));return JSON.parse((new TextDecoder).decode(s))}const c=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})),l="https://you-note.ru/api";var d=function(e){return e.POST="POST",e.GET="GET",e.DELETE="DELETE",e.PUT="PUT",e}(d||{});const h={Request:async(e,t,s)=>{const a={method:e,mode:"cors",credentials:"include",headers:{...s.headers,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(s.body)},o=new URL(l+t);for(const e in s.query)o.searchParams.set(e,s.query[e].toString());try{const e=await fetch(o,a),t={body:null,headers:{},status:503};try{t.body=await e.json()}catch{t.body=null}return t.status=e.status,e.headers.forEach(((e,s)=>{t.headers[s]=e})),t}catch(e){return{body:null,headers:{},status:503}}},Post:async(e,t)=>h.Request(d.POST,e,t),Get:async(e,t)=>h.Request(d.GET,e,t),Put:async(e,t)=>h.Request(d.PUT,e,t),Delete:async(e,t)=>h.Request(d.DELETE,e,t)},p=new class{baseUrl="/auth";Login=async(e,t)=>{const s=await h.Post(this.baseUrl+"/login",{body:{username:e,password:t}});if(200==s.status)return{id:s.body.id,username:s.body.username,create_time:s.body.create_time,image_path:s.body.image_path,jwt:s.headers.authorization};throw Error(s.body.message)};SignUp=async(e,t)=>{const s=await h.Post(this.baseUrl+"/signup",{body:{username:e,password:t}});if(201===s.status)return{id:s.body.id,username:s.body.username,create_time:s.body.create_time,image_path:s.body.image_path,jwt:s.headers.authorization};throw Error(s.body.message)};Logout=async e=>{const t=await h.Delete(this.baseUrl+"/logout",{headers:{Authorization:e}});if(204===t.status)return{message:"ok"};throw Error(t.body.message)};CheckUser=async e=>{if(200===(await h.Get(this.baseUrl+"/check_user",{headers:{Authorization:e}})).status)return m.Get(e);throw Error("not authorized")}},u=new class{baseUrl="/note";GetAll=async(e,t=null)=>{const s=await h.Get(this.baseUrl+"/get_all",{headers:{Authorization:e},query:t});if(200===s.status){for(const e of s.body)e.data=i(e.data);return s.body}throw Error(s.body.message)};Get=async(e,t)=>{const s=await h.Get(this.baseUrl+"/"+e,{headers:{Authorization:t}});if(200===s.status)return s.body.data=i(s.body.data),s.body;throw Error(s.body.message)};Delete=async(e,t)=>(await h.Delete(this.baseUrl+"/"+e+"/delete",{headers:{Authorization:t}})).status;Update=async(e,t)=>{const s=await h.Post(this.baseUrl+"/"+e.id+"/edit",{headers:{Authorization:t},body:{data:e}});return s.body.data=i(s.body.data),s.body};Add=async e=>{const t=await h.Post(this.baseUrl+"/add",{headers:{Authorization:e},body:{data:{content:c(),title:"Новая заметка"}}});return console.log(t.status),console.log(t.body),t.body.data=i(t.body.data),t.body}},m=new class{Get=async e=>{const t=await h.Get("/profile/get",{headers:{Authorization:e}});if(200==t.status)return{id:t.body.id,username:t.body.username,create_time:t.body.create_time,image_path:t.body.image_path}};UpdateAvatar=async(e,t)=>{const s=new FormData;s.append("avatar",e);const a={method:d.POST,mode:"cors",credentials:"include",headers:{Authorization:t},body:s},o=await fetch(l+"/profile/update_avatar/",a);return(await o.json()).image_path};UpdatePassword=async(e,t,s)=>{if(console.log("UpdatePassword"),200!=(await h.Post("/profile/update/",{headers:{Authorization:s},body:{description:"string",password:{new:t,old:e}}})).status)throw Error("Неверный пароль")}};class g{callbacks=new Set;SubscribeToStore(e){this.callbacks.add(e)}UnSubscribeToStore(e){this.callbacks.delete(e)}SetState(e){this.state=e(this.state),this.callbacks.forEach((e=>{e(this.state)}))}}class w extends t.Q.Component{render(){return a("img",{src:this.props.src,alt:"",className:this.props.className?this.props.className:"",onclick:this.props.onClick})}}class v extends t.Q.Component{state={open:!0,timer:void 0};componentDidMount(){this.setState((e=>({...e,timer:setTimeout((()=>{this.closeToast()}),3e3)})))}componentWillUnmount(){clearTimeout(this.state.timer)}closeToast=()=>{this.setState((e=>({...e,open:!1}))),setTimeout((()=>{this.props.onHide(this.props.key1)}),300)};formatType(){return this.props.type==f.SUCCESS?"Успех":this.props.type==f.ERROR?"Ошибка":"Инфо"}getIcon(){return this.props.type==f.SUCCESS?"/src/assets/success.svg":this.props.type==f.ERROR?"/src/assets/error.svg":"/src/assets/info.svg"}render(){return o("div",{className:"toast success "+(this.state.open?"":"hide"),style:`bottom: ${this.props.offset}px`,children:[o("div",{className:"toast-content",children:[a(w,{src:this.getIcon(),className:"toast-icon"}),o("div",{className:"content",children:[a("span",{className:"title",children:this.formatType()}),a("span",{className:"message",children:this.props.message})]})]}),a(w,{src:"/src/assets/close.svg",className:"toast-close-btn",onClick:this.closeToast}),a("div",{className:"progress"})]})}}const f={SUCCESS:"success",ERROR:"error"};class y extends t.Q.Component{state={toasts:[]};constructor(){super(),S=this}success(e){this.setupToast(f.SUCCESS,e)}error(e){this.setupToast(f.ERROR,e)}setupToast=(e,t)=>{this.setState((e=>({...e,toasts:e.toasts.map((e=>(e.offset+=100,e)))})));const s={type:e,message:t,id:c(),offset:25};this.setState((e=>({...e,toasts:e.toasts.concat(s)})))};removeToast=e=>{const t=this.state.toasts.find((t=>t.id==e));this.setState((e=>({...e,toasts:e.toasts.map((s=>(e.toasts.indexOf(t)>e.toasts.indexOf(s)&&(s.offset-=100),s)))}))),this.setState((t=>({...t,toasts:t.toasts.filter((t=>t.id!==e))})))};render(){return a("div",{children:this.state.toasts.map((e=>a(v,{key1:e.id,type:e.type,message:e.message,onHide:this.removeToast,offset:e.offset})))})}}let S;const b=new class extends g{state={JWT:null,username:"",avatarUrl:"",isAuth:!1,errorLoginForm:void 0,errorRegisterForm:void 0,errorUpdatePasswordForm:void 0,updatePasswordFormOpen:!1};constructor(){super(),this.state.JWT=window.localStorage.getItem("Authorization"),this.registerEvents()}registerEvents(){n.register((async e=>{switch(e.type){case P.LOGIN:await this.login(e.payload);break;case P.LOGOUT:await this.logout();break;case P.REGISTER:await this.register(e.payload);break;case P.CHECK_USER:await this.checkUser();break;case P.UPDATE_AVATAR:await this.updateAvatar(e.payload);break;case P.UPDATE_PASSWORD:await this.updatePassword(e.payload);break;case P.OPEN_CHANGE_PASSWORD_FORM:this.openChangePasswordForm();break;case P.CLOSE_CHANGE_PASSWORD_FORM:this.closeChangePasswordForm()}}))}async login(e){this.SetState((e=>({...e,errorLoginForm:void 0})));try{const t=await p.Login(e.username,e.password);this.SetState((e=>({...e,JWT:t.jwt,username:t.username,isAuth:!0,avatarUrl:t.image_path}))),localStorage.setItem("Authorization",this.state.JWT),console.log("login successfull"),ne.go("/notes")}catch(e){console.log(e),this.SetState((e=>({...e,errorLoginForm:"Неправильный логин или пароль"})))}}async logout(){try{await p.Logout(this.state.JWT),this.SetState((e=>({...e,isAuth:!1,username:"",avatarUrl:""}))),console.log("logout successful"),ne.go("/")}catch(e){console.log(e)}}async register(e){this.SetState((e=>({...e,errorRegisterForm:void 0})));try{const t=await p.SignUp(e.username,e.password);this.SetState((e=>({...e,isAuth:!0,username:t.username,avatarUrl:t.image_path,JWT:t.jwt}))),localStorage.setItem("Authorization",this.state.JWT),console.log("signup successfull"),ne.go("/notes")}catch(e){console.log(e),console.log("username already taken"),this.SetState((e=>({...e,errorRegisterForm:"Неправильный пароль"})))}}async checkUser(){try{const e=await p.CheckUser(this.state.JWT);this.SetState((t=>({...t,isAuth:!0,username:e.username,avatarUrl:e.image_path})))}catch(e){console.log("не зареган"),console.log(e),this.SetState((e=>({...e,isAuth:!1})))}}async updateAvatar(e){const t=await m.UpdateAvatar(e,this.state.JWT);this.SetState((e=>({...e,avatarUrl:t})))}async updatePassword({oldPassword:e,newPassword:t}){try{await m.UpdatePassword(e,t,this.state.JWT),S.success("Пароль успешно изменен"),this.closeChangePasswordForm()}catch(e){"Неверный пароль"==e.message&&(S.error("Неверный пароль"),this.SetState((e=>({...e,errorUpdatePasswordForm:"Неправильный пароль"}))))}}openChangePasswordForm(){this.SetState((e=>({...e,updatePasswordFormOpen:!0})))}closeChangePasswordForm(){this.SetState((e=>({...e,updatePasswordFormOpen:!1,errorUpdatePasswordForm:void 0})))}},P={LOGIN:"LOGIN",LOGOUT:"LOGOUT",REGISTER:"REGISTER",CHECK_USER:"CHECK_USER",UPDATE_AVATAR:"UPDATE_AVATAR",UPDATE_PASSWORD:"UPDATE_PASSWORD",OPEN_CHANGE_PASSWORD_FORM:"OPEN_CHANGE_PASSWORD_FORM",CLOSE_CHANGE_PASSWORD_FORM:"CLOSE_CHANGE_PASSWORD_FORM"};class N extends t.Q.Component{componentDidMount(){document.title="Главная";const e=new IntersectionObserver((function(e,t){e.forEach((e=>{e.isIntersecting&&(e.target.classList.add("animate"),t.unobserve(e.target))}))}));document.querySelectorAll(".second .cards-container .card").forEach((t=>{e.observe(t)}))}render(){return o("div",{className:"home",children:[a("section",{className:"first",children:o("div",{className:"text-container",children:[a("h1",{children:"YouNote - современный сервис для ведения заметок"}),a(r,{onClick:()=>{ne.go(b.state.isAuth?"/notes":"/login")},label:"Попробовать"})]})}),o("section",{className:"second",children:[a("h2",{children:"Функции и возможности"}),o("div",{className:"cards-container",children:[o("div",{className:"card",children:[a("img",{src:"./src/assets/notes.png",alt:""}),a("h3",{children:"Многофункциональность"}),a("span",{children:"Сервис может использоваться для любых задач: планирование досуга, ведение конспектов, организация командной работы"})]}),o("div",{className:"card",children:[a("img",{src:"./src/assets/accessibility.png",alt:""}),a("h3",{children:"Доступность"}),a("span",{children:"Можно получить доступ к своим записям, имея под рукой любое устройство с доступом к интернет"})]}),o("div",{className:"card",children:[a("img",{src:"./src/assets/success.png",alt:""}),a("h3",{children:"Удобство"}),a("span",{children:"Простой, минималистичный и интуитивно понятный интерфейс дает возможность комфортного ведения заметок любым пользователем"})]}),o("div",{className:"card",children:[a("img",{src:"./src/assets/personalization.png",alt:""}),a("h3",{children:"Персонализация"}),a("span",{children:"Сервис позволяет оформлять записи, дополняя их картинками, оформляя заметки в соответствии с личными предпочтениями"})]})]})]})]})}}class E extends t.Q.Component{props={err:"Error"};render(){return a("h1",{children:this.props.err})}}class k extends t.Q.Component{state={};componentDidMount(){this.setState((e=>({...e,type:this.props.type?this.props.type:"text",placeholder:this.props.placeholder?this.props.placeholder:"",isPassword:"password"==this.props.type,icon:this.props.icon?this.props.icon:"",hasIcon:null!=this.props.icon})))}toggleInputType=()=>{this.setState((e=>({...e,type:"password"==e.type?"text":"password"})))};handleChange=e=>{this.props.onChange&&this.props.onChange(e.target.value)};render(){return o("div",{className:"input-container "+(this.props.validationResult?"success":"")+(this.props.error?"error":""),children:[a("input",{type:this.state.type,placeholder:this.state.placeholder,value:this.props.value,oninput:this.handleChange}),a("div",{className:"errors-container",children:""!=this.props.error?this.props.error:""}),this.state.isPassword?o("div",{className:"password-toggle-btn-container",onclick:this.toggleInputType,children:[a("img",{className:"password-toggle-btn show-btn",src:"/src/assets/eye-slash.svg",alt:""}),a("img",{className:"password-toggle-btn hide-btn",src:"/src/assets/eye.svg",alt:""})]}):"",this.state.hasIcon?a("img",{className:"icon",src:this.state.icon,alt:""}):""]})}}const C=e=>{for(let t=0;t=97&&e.charCodeAt(t)<=122||e.charCodeAt(t)>=64&&e.charCodeAt(t)<=90||e.charCodeAt(t)>=48&&e.charCodeAt(t)<=57||e.charCodeAt(t)>=35&&e.charCodeAt(t)<=38))return O(!1,"Пароль должен содержать только латинские символы, цифры или символы #$%&");return/[a-zA-Z]/g.test(e)?""===e?O(!1,"Пароль не может быть пустым"):e.length<8?O(!1,"Пароль должен быть не менее 8 символов"):e.length>20?O(!1,"Пароль должен быть короче 20 символов"):O(!0):O(!1,"Пароль должен содержать хотя бы одну букву")},R=e=>{for(let t=0;t=97&&e.charCodeAt(t)<=122||e.charCodeAt(t)>=64&&e.charCodeAt(t)<=90||e.charCodeAt(t)>=48&&e.charCodeAt(t)<=57))return O(!1,"Логин должен содержать только латинские символы или цифры");return""===e?O(!1,"Логин не может быть пустым"):e.length<4?O(!1,"Логин должен быть не менее 4 символов"):e.length>12?O(!1,"Логин должен быть короче 12 символов"):O(!0)},O=(e,t=null)=>({result:e,message:t});class T extends t.Q.Component{state={errorLogin:"",loginValidationResult:!1,login:"",errorPassword:"",passwordValidationResult:!1,password:""};componentDidMount(){b.SubscribeToStore(this.updateState)}componentWillUnmount(){b.UnSubscribeToStore(this.updateState)}updateState=e=>{void 0!==e.errorLoginForm&&(this.setLoginError(e.errorLoginForm),this.setLoginValidated(!1),this.setPasswordError(e.errorLoginForm),this.setPasswordValidated(!1))};handleSubmit=()=>{this.checkLogin(),this.checkPassword(),this.state.loginValidationResult&&this.state.passwordValidationResult&&n.dispatch(P.LOGIN,{username:this.state.login,password:this.state.password})};setLoginValidated=e=>{this.setState((t=>({...t,loginValidationResult:e})))};setLogin=e=>{this.setState((t=>({...t,login:e}))),this.checkLogin()};checkLogin=()=>{const{message:e,result:t}=R(this.state.login);this.setLoginValidated(t),t?this.setLoginError(""):this.setLoginError(e)};setLoginError=e=>{this.setState((t=>({...t,errorLogin:e})))};setPassword=e=>{this.setState((t=>({...t,password:e}))),this.checkPassword()};checkPassword=()=>{const{message:e,result:t}=C(this.state.password);this.setPasswordValidated(t),t?this.setPasswordError(""):this.setPasswordError(e)};setPasswordError=e=>{this.setState((t=>({...t,errorPassword:e})))};setPasswordValidated=e=>{this.setState((t=>({...t,passwordValidationResult:e})))};render(){return o("form",{className:"login-form",children:[a("h3",{children:"Вход"}),a(k,{type:"text",placeholder:"Введите логин",icon:"src/assets/user.png",value:this.state.login,error:this.state.errorLogin,validationResult:this.state.loginValidationResult,onChange:this.setLogin}),a(k,{type:"password",placeholder:"Введите пароль",icon:"src/assets/password.png",value:this.state.password,error:this.state.errorPassword,validationResult:this.state.passwordValidationResult,onChange:this.setPassword}),a(r,{label:"Войти",onClick:this.handleSubmit})]})}}class A extends t.Q.Component{state={login:"",errorLogin:"",loginValidationResult:!1,password:"",errorPassword:"",passwordValidationResult:!1,repeatPassword:"",errorRepeatPassword:"",repeatPasswordValidationResult:!1};componentDidMount(){b.SubscribeToStore(this.updateState)}componentWillUnmount(){b.UnSubscribeToStore(this.updateState)}updateState=e=>{void 0!==e.errorRegisterForm&&(this.setLoginError(e.errorRegisterForm),this.setLoginValidated(!1))};handleSubmit=()=>{this.state.loginValidationResult&&this.state.passwordValidationResult&&this.state.repeatPasswordValidationResult&&n.dispatch(P.REGISTER,{username:this.state.login,password:this.state.password})};setLoginValidated=e=>{this.setState((t=>({...t,loginValidationResult:e})))};setLogin=e=>{this.setState((t=>({...t,login:e})));const{message:t,result:s}=R(e);this.setLoginValidated(s),s?this.setLoginError(""):this.setLoginError(t)};setLoginError=e=>{this.setState((t=>({...t,errorLogin:e})))};setPassword=e=>{if(this.setState((t=>({...t,password:e}))),this.state.password!=this.state.repeatPassword)return this.setRepeatPasswordError("Пароли не совпадают"),this.setPasswordError("Пароли не совпадают"),this.setPasswordValidated(!1),void this.setRepeatPasswordValidated(!1);const{message:t,result:s}=C(e);s?(this.setPasswordValidated(!0),this.setRepeatPasswordValidated(!0),this.setPasswordError(""),this.setRepeatPasswordError("")):(this.setPasswordValidated(!1),this.setPasswordError(t))};setPasswordError=e=>{this.setState((t=>({...t,errorPassword:e})))};setPasswordValidated=e=>{this.setState((t=>({...t,passwordValidationResult:e})))};setRepeatPassword=e=>{if(this.setState((t=>({...t,repeatPassword:e}))),this.state.password!=this.state.repeatPassword)return this.setRepeatPasswordError("Пароли не совпадают"),this.setPasswordError("Пароли не совпадают"),this.setPasswordValidated(!1),void this.setRepeatPasswordValidated(!1);const{message:t,result:s}=C(e);s?(this.setPasswordValidated(!0),this.setRepeatPasswordValidated(!0),this.setRepeatPasswordError(""),this.setPasswordError("")):(this.setRepeatPasswordValidated(!1),this.setRepeatPasswordError(t))};setRepeatPasswordError=e=>{this.setState((t=>({...t,errorRepeatPassword:e})))};setRepeatPasswordValidated=e=>{this.setState((t=>({...t,repeatPasswordValidationResult:e})))};render(){return o("form",{className:"register-form",children:[a("h3",{children:"Регистрация"}),a(k,{type:"text",placeholder:"Придумайте логин",icon:"/src/assets/user.png",onChange:this.setLogin,value:this.state.login,error:this.state.errorLogin,validationResult:this.state.loginValidationResult}),a(k,{type:"password",placeholder:"Придумайте пароль",icon:"src/assets/password.png",value:this.state.password,onChange:this.setPassword,error:this.state.errorPassword,validationResult:this.state.passwordValidationResult}),a(k,{type:"password",placeholder:"Повторите пароль",icon:"src/assets/password.png",value:this.state.repeatPassword,onChange:this.setRepeatPassword,error:this.state.errorRepeatPassword,validationResult:this.state.repeatPasswordValidationResult}),a(r,{label:"Войти",onClick:this.handleSubmit})]})}}class U extends t.Q.Component{state={selectedForm:"login",toggled:!1};componentDidMount(){this.setState((e=>({...e,selectedForm:window.location.pathname.replace("/","")}))),document.title="login"===this.state.selectedForm?"Вход":"Регистрация"}toggleForm=()=>{this.setState((e=>({selectedForm:"login"===e.selectedForm?"register":"login",toggled:!0}))),history.pushState(null,null,this.state.selectedForm),document.title="login"===this.state.selectedForm?"Вход":"Регистрация"};render(){return a("div",{className:"auth-page-wrapper "+(window.location.pathname.includes("login")?"login"===this.state.selectedForm?"":"active":this.state.toggled?"":"active"),children:a("div",{className:"glassmorphism-container",children:o("div",{className:"auth-container",children:[a("div",{className:"form-container sign-in",children:a(T,{})}),a("div",{className:"form-container sign-up"+(this.state.toggled?" fade-left":"")+(window.location.pathname.includes("login")&&this.state.toggled?" fade-right":""),children:a(A,{})}),a("div",{className:"toggle-container",children:o("div",{className:"toggle",children:[o("div",{className:"toggle-panel toggle-left",children:[a("h2",{children:"Уже есть аккаунт?"}),a(r,{label:"Войти",onClick:this.toggleForm})]}),o("div",{className:"toggle-panel toggle-right",children:[a("h2",{children:"Ещё нет аккаунта?"}),a(r,{label:"Зарегистрироваться",onClick:this.toggleForm})]})]})})]})})})}}class x extends t.Q.Component{state={id:0,title:"",content:"",update_time:""};componentDidMount(){this.setState((e=>{return{...e,id:this.props.note.id,title:this.props.note.data.title,content:(s=this.props.note.data.content,50,s.length>50?s.slice(0,49)+"...":s),update_time:(t=this.props.note.update_time,new Intl.DateTimeFormat("ru",{month:"short",day:"numeric",hour:"numeric",minute:"numeric",hourCycle:"h23"}).format(new Date(t)).replace(",",""))};var t,s}))}render(){return o("div",{className:"note-container "+(this.props.selected?"selected":""),id:this.state.id,children:[a("h3",{children:this.state.title}),a("p",{children:this.state.content}),a("span",{className:"update-time",children:this.state.update_time})]})}}class _ extends t.Q.Component{handleChange=e=>{this.props.onChange&&this.props.onChange(e.target.value)};render(){return o("div",{className:"search",children:[a("input",{type:"text",className:"search-input",placeholder:"Поиск...",oninput:this.handleChange}),a("img",{src:"/src/assets/search.svg",alt:"",className:"search-icon"})]})}}const L="SELECT_NOTE",D="SEARCH_NOTES",V="LOAD_NOTES",M="CLOSE_NOTE",F="EXIT_NOTES_PAGE",j="OPEN_DELETE_NOTE_DIALOG",W="CLOSE_DELETE_NOTE_DIALOG",G="DELETE_NOTE",Q="SAVE_NOTE",I="CREATE_EMPTY_NOTE",q=new class extends g{state={notes:[],selectedNote:void 0,query:"",offset:0,count:10,modalOpen:!1,saving:void 0};constructor(){super(),this.registerEvents()}registerEvents(){n.register((async e=>{switch(e.type){case L:await this.selectNote(e.payload);break;case M:this.closeNote();break;case D:await this.searchNotes(e.payload);break;case V:await this.loadNotes();break;case F:this.exit();break;case j:this.openModal();break;case W:this.closeModal();break;case G:await this.deleteNote();break;case Q:await this.saveNote(e.payload);break;case I:await this.createEmptyNote()}}))}openModal(){this.SetState((e=>({...e,modalOpen:!0})))}closeModal(){this.SetState((e=>({...e,modalOpen:!1})))}exit(){this.SetState((e=>({...e,query:"",offset:0,selectedNote:void 0,notes:[]})))}closeNote(){this.SetState((e=>({...e,selectedNote:void 0})))}async selectNote(e){const t=await u.Get(e,b.state.JWT);this.SetState((e=>({...e,selectedNote:t})))}async init(){return await this.fetchNotes(),this.state}async searchNotes(e){this.SetState((t=>({...t,offset:0,query:e}))),await this.fetchNotes(!0)}async loadNotes(){this.SetState((e=>({...e,offset:e.offset+e.count}))),await this.fetchNotes()}async fetchNotes(e=!1){const t={title:this.state.query,offset:this.state.offset,count:this.state.count},s=await u.GetAll(b.state.JWT,t);this.SetState((t=>({...t,notes:e?s:t.notes.concat(s)})))}async deleteNote(){204==await u.Delete(this.state.selectedNote.id,b.state.JWT)&&(this.SetState((e=>({...e,notes:e.notes.filter((e=>e.id!==this.state.selectedNote.id))}))),this.closeNote())}async saveNote(e){if(this.state.selectedNote.id==e.id){this.SetState((e=>({...e,saving:!0})));const t=await u.Update(e,b.state.JWT);console.log(t),S.success("Заметка успешно сохранена"),this.SetState((e=>({...e,saving:!1})))}}async createEmptyNote(){const e=await u.Add(b.state.JWT);this.SetState((t=>({...t,notes:[e,...t.notes]}))),console.log(this.state.notes)}};class z extends t.Q.Component{state={open:!1,selectedNote:void 0,saving:void 0,content:void 0};componentDidMount(){q.SubscribeToStore(this.updateState),document.querySelector(".note-editor").addEventListener("input",function(e,t){let s;return function(){clearTimeout(s),s=setTimeout((()=>e.apply(this)),1e3)}}(this.handleKeypress))}handleKeypress=()=>{this.state.selectedNote&&this.saveNote()};saveNote=()=>{const e=document.querySelector(".note-title"),t=document.querySelector(".note-content > span"),s={id:this.state.selectedNote.id,title:e.innerText,content:t.innerText};s.title===this.state.selectedNote.data.title&&s.content===this.state.selectedNote.data.content||n.dispatch(Q,s),this.setState((e=>({...e,selectedNote:{id:e.selectedNote.id,data:{title:s.title,content:s.content},update_time:e.selectedNote.update_time}})))};closeEditor=()=>{this.saveNote(),n.dispatch(M)};updateState=e=>{console.log("updateState"),console.log("2342342342342asdf"),console.log(this.state.selectedNote),this.setState((t=>({...t,selectedNote:e.selectedNote,open:void 0!==e.selectedNote,saving:e.saving}))),console.log(this.state.selectedNote)};deleteNote=()=>{n.dispatch(j)};render(){return o("div",{className:"note-editor "+(this.state.open?"active":""),children:[o("div",{className:"top-panel",children:[a("div",{className:"left-container"}),o("div",{className:"right-container",children:[a(w,{src:"/src/assets/trash.svg",className:"icon",onClick:this.deleteNote}),a(w,{src:"/src/assets/close.svg",className:"icon",onClick:this.closeEditor})]})]}),o("div",{className:"bottom-panel",children:[a("div",{className:"note-title-container",contentEditable:"true",children:a("h3",{className:"note-title",children:this.state.selectedNote?.data.title})}),a("div",{className:"note-content",contentEditable:"true",children:a("span",{children:this.state.selectedNote?.data.content})}),a("div",{className:"note-save-indicator",children:!1===this.state.saving?a("h3",{children:"Сохранено"}):""})]})]})}}class H extends t.Q.Component{state={open:!1};componentDidMount(){q.SubscribeToStore(this.updateState),document.addEventListener("click",this.handleClickOutside,!0)}handleClickOutside=e=>{e.target.classList.contains("overlay")&&n.dispatch(W)};componentWillUnmount(){q.UnSubscribeToStore(this.updateState),document.removeEventListener("click",this.handleClickOutside,!0)}updateState=e=>{this.setState((t=>({...t,open:e.modalOpen})))};closeModal=()=>{n.dispatch(W)};deleteNote=()=>{n.dispatch(G),n.dispatch(W)};render(){return o("div",{className:"modal-wrapper "+(this.state.open?"active":""),children:[a("div",{className:"overlay"}),o("div",{className:"modal-content",children:[a("h2",{children:"Удалить заметку?"}),a("span",{children:"Заметка и данные в ней будут удалены без возможности восстановления"}),o("div",{className:"buttons-container",children:[a(r,{label:"Удалить",onClick:this.deleteNote}),a(r,{label:"Отменить",className:"cancel-btn",onClick:this.closeModal})]}),a(w,{src:"/src/assets/close.svg",className:"close-modal-btn",onClick:this.closeModal})]})]})}}class J extends t.Q.Component{state={notes:[],selectedNote:void 0};componentDidMount(){document.title="Заметки",q.SubscribeToStore(this.updateState),this.setState((e=>({...e,notes:this.props.notes}))),this.createObserver()}componentWillUnmount(){n.dispatch(F),q.UnSubscribeToStore(this.updateState)}updateState=e=>{console.log("updateState"),console.log(this.state.notes),this.setState((t=>(t.notes.length>0&&t.notes.length{let t;e.target.matches(".note-container")?t=e.target.id:e.target.matches(".note-container *")&&(t=e.target.parentNode.id),console.log("handleSelectNote"),console.log(t),t&&n.dispatch(L,t)};createObserver(){new IntersectionObserver((function(e,t){e.forEach((e=>{e.isIntersecting&&(n.dispatch(V),t.unobserve(e.target))}))})).observe(document.querySelector(".note-container:last-child"))}searchNotes=e=>{n.dispatch(D,e)};createEmptyNote=()=>{console.log("createEmptyNote"),n.dispatch(I)};render(){return o("div",{className:"notes-page-wrapper "+(this.state.selectedNote?"active":""),children:[o("aside",{children:[a(H,{}),o("div",{className:"top-panel",children:[a(r,{label:"Новая заметка",onClick:this.createEmptyNote}),a(_,{onChange:this.searchNotes})]}),a("div",{className:"notes-container",onclick:this.handleSelectNote,children:this.state.notes.map((e=>a(x,{key1:e.id,note:e,selected:this.state.selectedNote?.id==e.id})))})]}),a(z,{})]})}}class K extends t.Q.Component{handleClick(){ne.go("/")}render(){return a("div",{className:"logo-wrapper",onclick:this.handleClick,children:a("img",{src:"src/assets/logo.png",alt:""})})}}class Y extends t.Q.Component{state={password:"",errorPassword:"",passwordValidationResult:!1,repeatPassword:"",errorRepeatPassword:"",repeatPasswordValidationResult:!1,open:!1};componentDidMount(){b.SubscribeToStore(this.updateState),document.addEventListener("click",this.handleClickOutside,!0)}componentWillUnmount(){b.UnSubscribeToStore(this.updateState),document.removeEventListener("click",this.handleClickOutside,!0)}handleClickOutside=e=>{e.target.classList.contains("overlay")&&this.closeModal()};updateState=e=>{this.setState((t=>({...t,open:e.updatePasswordFormOpen}))),this.state.open||setTimeout((()=>{this.setState((()=>({password:"",errorPassword:"",passwordValidationResult:!1,repeatPassword:"",errorRepeatPassword:"",repeatPasswordValidationResult:!1})))}),500)};closeModal=()=>{n.dispatch(P.CLOSE_CHANGE_PASSWORD_FORM)};setPassword=e=>{this.setState((t=>({...t,password:e}))),this.checkPassword(),this.checkRepeatPassword()};checkPassword=()=>{if(this.state.password.length>0&&this.state.password==this.state.repeatPassword)return this.setRepeatPasswordError("Пароли совпадают"),this.setPasswordError("Пароли совпадают"),this.setPasswordValidated(!1),void this.setRepeatPasswordValidated(!1);const{message:e,result:t}=C(this.state.password);t?(this.setPasswordValidated(!0),this.setPasswordError("")):(this.setPasswordValidated(!1),this.setPasswordError(e))};setPasswordError=e=>{this.setState((t=>({...t,errorPassword:e})))};setPasswordValidated=e=>{this.setState((t=>({...t,passwordValidationResult:e})))};setRepeatPassword=e=>{this.setState((t=>({...t,repeatPassword:e}))),this.checkPassword(),this.checkRepeatPassword()};checkRepeatPassword=()=>{if(this.state.repeatPassword.length>0&&this.state.password==this.state.repeatPassword)return this.setRepeatPasswordError("Пароли совпадают"),this.setPasswordError("Пароли совпадают"),this.setPasswordValidated(!1),void this.setRepeatPasswordValidated(!1);const{message:e,result:t}=C(this.state.repeatPassword);t?(this.setRepeatPasswordValidated(!0),this.setRepeatPasswordError("")):(this.setRepeatPasswordValidated(!1),this.setRepeatPasswordError(e))};setRepeatPasswordError=e=>{this.setState((t=>({...t,errorRepeatPassword:e})))};setRepeatPasswordValidated=e=>{this.setState((t=>({...t,repeatPasswordValidationResult:e})))};handleSubmit=()=>{this.checkPassword(),this.checkRepeatPassword(),this.state.passwordValidationResult&&this.state.repeatPasswordValidationResult&&n.dispatch(P.UPDATE_PASSWORD,{oldPassword:this.state.password,newPassword:this.state.repeatPassword})};render(){return o("div",{className:"modal-wrapper "+(this.state.open?"active":""),children:[a("div",{className:"overlay"}),o("div",{className:"modal-content change-password-form",children:[a("h2",{children:"Форма изменения пароля"}),a(k,{type:"password",placeholder:"Старый пароль",icon:"src/assets/password.png",value:this.state.password,onChange:this.setPassword,error:this.state.errorPassword,validationResult:this.state.passwordValidationResult}),a(k,{type:"password",placeholder:"Новый пароль",icon:"src/assets/password.png",value:this.state.repeatPassword,onChange:this.setRepeatPassword,error:this.state.errorRepeatPassword,validationResult:this.state.repeatPasswordValidationResult}),a(r,{label:"Изменить",onClick:this.handleSubmit}),a(w,{src:"/src/assets/close.svg",className:"close-modal-btn",onClick:this.closeModal})]})]})}}class $ extends t.Q.Component{state={open:!1,inUpload:!1};componentDidMount(){document.addEventListener("click",this.handleClickOutside,!0)}componentWillUnmount(){document.removeEventListener("click",this.handleClickOutside,!0)}handleClickOutside=e=>{document.querySelector(".toast")?.contains(e.target)||document.querySelector(".toggle-profile-button")?.contains(e.target)||document.querySelector(".popup-content")?.contains(e.target)||document.querySelector(".modal-wrapper")?.contains(e.target)||this.close()};close=()=>{this.setState((e=>({...e,open:!1})))};toggleOpen=()=>{this.setState((e=>({...e,open:!e.open})))};handleLogout=async()=>{n.dispatch(P.LOGOUT)};handlePhotoUpload=e=>{const t=e.target.files[0];if(t.size>2097152)return S.error("Фото слишком большое"),console.log(e.target),void(e.target.value=null);this.setState((e=>({...e,inUpload:!0}))),n.dispatch(P.UPDATE_AVATAR,t),setTimeout((()=>{this.setState((e=>({...e,inUpload:!1}))),e.target.value=null}),3e3)};openModal=()=>{n.dispatch(P.OPEN_CHANGE_PASSWORD_FORM)};render(){return o("div",{className:"user-profile-wrapper "+(this.state.open?"open":""),children:[o("div",{className:"toggle-profile-button",onclick:this.toggleOpen,children:[a("div",{className:"slider one"}),a("div",{className:"slider two"}),a("div",{className:"slider three"})]}),a("div",{className:"panel",children:o("div",{className:"popup-content",children:[o("div",{className:"user-avatar-container",children:[a(w,{src:"https://you-note.ru/images/"+this.props.avatarUrl,className:"user-avatar "+(this.state.inUpload?"loading":"")}),o("form",{className:"upload-preview",children:[a("input",{type:"file",accept:".jpg,.png",id:"upload-image-input",hidden:"true",onchange:this.handlePhotoUpload}),a("label",{htmlFor:"upload-image-input"}),a(w,{src:"src/assets/photo.svg",className:"upload-preview-icon"})]}),o("div",{className:"progress-wrapper "+(this.state.inUpload?"active":""),children:[a("div",{className:"inner"}),o("div",{className:"checkmark",children:[a("span",{}),a("span",{})]}),o("div",{className:"circle",children:[a("div",{className:"bar left",children:a("div",{className:"progress"})}),a("div",{className:"bar right",children:a("div",{className:"progress"})})]})]})]}),a("span",{className:"username",children:b.state.username}),a("span",{className:"change-password-btn",onclick:this.openModal,children:"Изменить пароль"}),a(r,{label:"Выйти",className:"logout-btn",onClick:this.handleLogout})]})}),a(Y,{})]})}}class B extends t.Q.Component{state={isAuth:!1,userChecked:!1,avatarUrl:!1};componentDidMount(){b.SubscribeToStore(this.updateState),n.dispatch(P.CHECK_USER)}updateState=e=>{this.setState((t=>({...t,isAuth:e.isAuth,avatarUrl:e.avatarUrl,userChecked:!0})))};render(){return o("header",{id:"header",children:[a(K,{}),this.state.userChecked?this.state.isAuth?a($,{avatarUrl:this.state.avatarUrl}):this.props.currPage!==U?a(r,{label:"Вход",onClick:()=>ne.go("/login")}):"":""]})}}class X extends t.Q.Component{render(){return o("div",{className:"background",children:[a("div",{className:"parallax-bg"}),a("div",{id:"stars"}),a("div",{id:"stars2"}),a("div",{id:"stars3"})]})}}class Z extends t.Q.Component{render(){return a("div",{className:"notes-page-skeleton-wrapper",children:o("aside",{children:[a("div",{className:"search-bar-skeleton"}),o("div",{className:"notes-container-skeleton",children:[a("div",{className:"note-skeleton"}),a("div",{className:"note-skeleton"}),a("div",{className:"note-skeleton"}),a("div",{className:"note-skeleton"})]})]})})}}var ee=Z;class te extends t.Q.Component{render(){return a("div",{className:"auth-page-skeleton-wrapper",children:a("div",{className:"auth-form-container-skeleton",children:a("div",{className:"auth-form-skeleton"})})})}}var se=te;const ae=async()=>{const e=new Promise(((e,t)=>{let s;const a=o=>{s=o.isAuth,b.UnSubscribeToStore(a),s?(ne.go("/"),t()):e(null)};b.SubscribeToStore(a),n.dispatch(P.CHECK_USER)}));return await e},oe=async()=>{const e=new Promise(((e,t)=>{let s;const a=o=>{s=o.isAuth,b.UnSubscribeToStore(a),s?q.init().then((t=>{e({notes:t.notes})})):(ne.go("/"),t())};b.SubscribeToStore(a),n.dispatch(P.CHECK_USER)}));return await e};class re extends t.Q.Component{state={currPage:N,PageProps:{}};constructor(){super(),ne=this,this.pages=new Map,this.initPages()}componentDidMount(){const e=window.location.pathname;window.addEventListener("popstate",(()=>{this.go(window.location.pathname)})),this.go(e)}initPages=()=>{this.pages["/"]={page:N,pageProps:{}},this.pages["/login"]={page:U,loader:ae,skeleton:se},this.pages["/register"]={page:U,loader:ae,skeleton:se},this.pages["/notes"]={page:J,loader:oe,skeleton:ee}};go(e){const t=this.pages[e];history.pushState({path:e},"",e),void 0!==t?void 0!==t.loader?(this.setState((e=>({...e,currPage:t.skeleton}))),t.loader().then((e=>{this.setState((s=>({...s,currPage:t.page,PageProps:e})))})).catch((()=>{}))):this.setState((e=>({...e,currPage:t.page}))):this.setState((e=>({...e,currPage:E,PageProps:{err:"404 NotFound"}})))}render(){return o("div",{children:[a(y,{}),a(B,{currPage:this.state.currPage}),t.Q.createComponent(this.state.currPage,{...this.state.PageProps,key:this.state.currPage.name}),this.state.currPage!==J&&this.state.currPage!==ee?a(X,{currPage:this.state.currPage}):""]})}}let ne;class ie extends t.Q.Component{render(){return a(re,{})}}(0,e.renderDOM)("root",t.Q.createComponent(ie,{}))}()}(); \ No newline at end of file diff --git a/postcss.config.js b/postcss.config.js index 134417d3..fdd77b85 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,5 +1,3 @@ -module.exports = { - plugins: [ - require('autoprefixer') - ] -} \ No newline at end of file +export const plugins = [ + require('autoprefixer') +]; \ No newline at end of file diff --git a/public/index.html b/public/index.html index 3bce0230..11805842 100644 --- a/public/index.html +++ b/public/index.html @@ -3,6 +3,7 @@ Title + diff --git a/public/src/Card/Card.sass b/public/src/Card/Card.sass new file mode 100644 index 00000000..fca6679b --- /dev/null +++ b/public/src/Card/Card.sass @@ -0,0 +1,28 @@ +@import "/public/src/utils/variables.sass" + +.card + background: rgba(255, 255, 255, .015) + box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05), 0 8px 15px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.1) + padding: 15px + border-radius: 15px + display: flex + justify-content: flex-start + align-items: center + flex-direction: column + gap: 10px + transition: all 0.25s ease-out + cursor: pointer + + img + width: 52px + height: 52px + + h3 + color: $white + + span + color: $text-main-color--darker + text-align: center + + &:hover + box-shadow: 0 3px 6px rgba(0, 0, 0, 0.04), 0 15px 25px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.2) \ No newline at end of file diff --git a/public/src/Card/Card.tsx b/public/src/Card/Card.tsx new file mode 100644 index 00000000..f6819835 --- /dev/null +++ b/public/src/Card/Card.tsx @@ -0,0 +1,14 @@ +import {ScReact} from "@veglem/screact"; +import "./Card.sass" + +export class Card extends ScReact.Component { + render() { + return ( +
+ +

{this.props.title}

+ {this.props.description} +
+ ) + } +} \ No newline at end of file diff --git a/public/src/components/Button/Button.tsx b/public/src/components/Button/Button.tsx index fa0315c1..2b3a6ee3 100644 --- a/public/src/components/Button/Button.tsx +++ b/public/src/components/Button/Button.tsx @@ -2,12 +2,15 @@ import {ScReact} from "@veglem/screact"; import "./Button.sass" export class Button extends ScReact.Component{ + + handleClick = (e) => { + e.preventDefault() + this.props.onClick && this.props.onClick(e); + } + render() { return ( - ) diff --git a/public/src/components/Input/Input.sass b/public/src/components/Input/Input.sass index 44d8d157..57b6e8c2 100644 --- a/public/src/components/Input/Input.sass +++ b/public/src/components/Input/Input.sass @@ -3,7 +3,6 @@ .input-container width: 100% position: relative - user-select: none input width: 100% diff --git a/public/src/components/Profile/Profile.sass b/public/src/components/Profile/Profile.sass index 1aae5691..6d1c598b 100644 --- a/public/src/components/Profile/Profile.sass +++ b/public/src/components/Profile/Profile.sass @@ -1,4 +1,5 @@ @import "/public/src/utils/variables.sass" +@import "/public/src/utils/breakpoints.sass" .user-profile-wrapper position: relative diff --git a/public/src/components/ShiningButton/ShinigButton.tsx b/public/src/components/ShiningButton/ShinigButton.tsx new file mode 100644 index 00000000..026dc4ab --- /dev/null +++ b/public/src/components/ShiningButton/ShinigButton.tsx @@ -0,0 +1,20 @@ +import {ScReact} from "@veglem/screact"; +import "./ShiningButton.sass" + +export class ShiningButton extends ScReact.Component { + handleClick = (e) => { + e.preventDefault() + this.props.onClick && this.props.onClick(e); + } + + render() { + return ( +
+
+
+

{this.props.label}

+
+
+ ) + } +} \ No newline at end of file diff --git a/public/src/components/ShiningButton/ShiningButton.sass b/public/src/components/ShiningButton/ShiningButton.sass new file mode 100644 index 00000000..4e18d167 --- /dev/null +++ b/public/src/components/ShiningButton/ShiningButton.sass @@ -0,0 +1,77 @@ +@import "/public/src/utils/variables.sass" + +$border-radius: 35px +$border-width: 2px +$blur-size: 10px + +.animated-border-box-container + display: flex + justify-content: center + align-items: center + position: relative + height: 80px + width: 240px + color: #fff + transition: transform .5s + cursor: pointer + + h3 + font-size: 28px + + &:hover + transform: scale(1.05) + + .animated-border-box + height: 100% + width: 100% + position: absolute + overflow: hidden + z-index: 0 + display: flex + justify-content: center + align-items: center + + border-radius: $border-radius + + &:after + content: '' + position: absolute + z-index: -1 + left: $border-width + top: $border-width + width: calc(100% - $border-width * 2) + height: calc(100% - $border-width * 2) + background: $primary-color + border-radius: $border-radius + + .animated-border-box-glow + height: 100% + width: 100% + position: absolute + overflow: hidden + top: 0 + left: 0 + z-index: 0 + border-radius: $border-radius + filter: blur($blur-size) + + .animated-border-box:before, .animated-border-box-glow:before + content: '' + z-index: -2 + text-align: center + top: 50% + left: 50% + transform: translate(-50%, -50%) rotate(0deg) + position: absolute + width: 99999px + height: 99999px + background-repeat: no-repeat + background-position: 0 0 + background-image: conic-gradient(rgba(0, 0, 0, 0), #fff, rgba(0, 0, 0, 0) 25%) + animation: rotate 4s linear infinite + + @keyframes rotate + 100% + transform: translate(-50%, -50%) rotate(1turn) + + diff --git a/public/src/modules/router.tsx b/public/src/modules/router.tsx index d6ffbecb..4d64c93b 100644 --- a/public/src/modules/router.tsx +++ b/public/src/modules/router.tsx @@ -1,7 +1,7 @@ import {Component} from "@veglem/screact/dist/component"; import {ScReact} from "@veglem/screact"; import {VDomNode} from "@veglem/screact/dist/vdom"; -import {HomePage} from "../pages/home"; +import {HomePage} from "../pages/Home"; import {ErrorPage} from "../pages/ErrorPage/errorPage"; import {AuthPage} from "../pages/Auth"; import {NotesPage} from "../pages/Notes"; diff --git a/public/src/pages/Home/index.tsx b/public/src/pages/Home/index.tsx new file mode 100644 index 00000000..6d767300 --- /dev/null +++ b/public/src/pages/Home/index.tsx @@ -0,0 +1,75 @@ +import {ScReact} from "@veglem/screact"; +import {VDomNode} from "@veglem/screact/dist/vdom"; +import "./style.sass" +import {AppRouter} from "../../modules/router"; +import {AppUserStore} from "../../modules/stores/UserStore"; +import {ShiningButton} from "../../components/ShiningButton/ShinigButton"; +import {Card} from "../../Card/Card"; + +export class HomePage extends ScReact.Component { + componentDidMount() { + document.title = "Главная" + this.createObserver() + } + + createObserver() { + const observer = new IntersectionObserver( + function (entries, observer) { + entries.forEach((entry) => { + if (entry.isIntersecting) { + entry.target.classList.add("animate"); + observer.unobserve(entry.target); + } + }); + }); + + const targetElements = document.querySelectorAll(".second .cards-container .card"); + + targetElements.forEach((targetElement) => { + observer.observe(targetElement); + }); + } + + handleButtonClick = () => { + const url = AppUserStore.state.isAuth ? "/notes" : "/login" + AppRouter.go(url) + } + + render(): VDomNode { + return ( +
+
+
+

YouNote - современный сервис для ведения заметок

+ +
+
+
+

Функции и возможности

+
+ + + + +
+
+
+ ); + } +} \ No newline at end of file diff --git a/public/src/pages/home/loader.ts b/public/src/pages/Home/loader.ts similarity index 100% rename from public/src/pages/home/loader.ts rename to public/src/pages/Home/loader.ts diff --git a/public/src/pages/Home/style.sass b/public/src/pages/Home/style.sass new file mode 100644 index 00000000..385df3e1 --- /dev/null +++ b/public/src/pages/Home/style.sass @@ -0,0 +1,92 @@ +@import "/public/src/utils/variables.sass" +@import "/public/src/utils/breakpoints.sass" + +.home-wrapper + width: 100% + display: flex + flex-direction: column + + section + width: 100% + + .first + display: grid + position: relative + grid-template-areas: "stack" + height: 100vh + + .container + display: flex + flex-direction: column + width: 100% + justify-content: center + align-items: center + gap: 60px + grid-area: stack + z-index: 10 + animation-duration: 1s + animation-fill-mode: both + animation-name: fadeIn + padding: 0 15px + + .title + text-align: center + font-size: 36px + color: #fff + text-shadow: 0 0 10px $primary-color, 0 0 20px $primary-color,0 0 40px $primary-color, 0 0 80px $primary-color + + @media screen and (max-width: $md) + font-size: 28px + + .second + display: flex + justify-content: center + align-items: center + flex-direction: column + color: $text-main-color + padding: 0 15% + gap: 75px + min-height: 100vh + z-index: 100 + + @media screen and (max-width: $md) + padding: 0 15px + + h2 + font-size: 36px + text-align: center + text-shadow: 0 0 10px $primary-color, 0 0 20px $primary-color,0 0 40px $primary-color, 0 0 80px $primary-color + + @media screen and (max-width: $md) + font-size: 32px + + .cards-container + display: grid + grid-template-columns: repeat(auto-fit, minmax(275px, 0.15fr)) + justify-content: center + width: 100% + gap: 25px + + .card.animate + animation: 1s both fadeInUp + + &:nth-child(1) + animation-delay: 0s + + &:nth-child(2) + animation-delay: 0.15s + + &:nth-child(3) + animation-delay: 0.3s + + &:nth-child(4) + animation-delay: 0.45s + + @keyframes fadeInUp + from + opacity: 0 + transform: translate3d(0,40px,0) + + to + transform: translate3d(0,0,0) + opacity: 1 diff --git a/public/src/pages/home/index.tsx b/public/src/pages/home/index.tsx deleted file mode 100644 index 7666c44e..00000000 --- a/public/src/pages/home/index.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import {ScReact} from "@veglem/screact"; -import {VDomNode} from "@veglem/screact/dist/vdom"; -import "./style.sass" -import {Button} from "../../components/Button/Button"; -import {AppRouter} from "../../modules/router"; -import {AppUserStore} from "../../modules/stores/UserStore"; - -export class HomePage extends ScReact.Component { - componentDidMount() { - document.title = "Главная" - - const observer = new IntersectionObserver( - function (entries, observer) { - entries.forEach((entry) => { - if (entry.isIntersecting) { - entry.target.classList.add("animate"); - observer.unobserve(entry.target); - } - }); - }); - - - const targetElements = document.querySelectorAll(".second .cards-container .card"); - - targetElements.forEach((targetElement) => { - observer.observe(targetElement); - }); - } - - render(): VDomNode { - return ( -
- -
-
-

YouNote - современный сервис для ведения заметок

- -
-
- -
-

Функции и возможности

-
-
- -

Многофункциональность

- Сервис может использоваться для любых задач: планирование досуга, ведение конспектов, организация командной работы -
-
- -

Доступность

- Можно получить доступ к своим записям, имея под рукой любое устройство с доступом к интернет -
-
- -

Удобство

- Простой, минималистичный и интуитивно понятный интерфейс дает возможность комфортного ведения заметок любым пользователем -
-
- -

Персонализация

- Сервис позволяет оформлять записи, дополняя их картинками, оформляя заметки в соответствии с личными предпочтениями -
-
-
- -
- ); - } -} \ No newline at end of file diff --git a/public/src/pages/home/style.sass b/public/src/pages/home/style.sass deleted file mode 100644 index 62c98183..00000000 --- a/public/src/pages/home/style.sass +++ /dev/null @@ -1,117 +0,0 @@ -@import "/public/src/utils/variables.sass" - -.home - width: 100% - display: flex - flex-direction: column - - section - width: 100% - - .first - display: grid - position: relative - grid-template-areas: "stack" - height: 100vh - - .text-container - display: flex - flex-direction: column - width: 100% - justify-content: center - align-items: center - gap: 60px - grid-area: stack - z-index: 10 - animation-duration: 1s - animation-fill-mode: both - animation-name: fadeIn - - h1 - text-align: center - font-size: 36px - color: #fff - text-shadow: 0 0 10px $primary-color, 0 0 20px $primary-color,0 0 40px $primary-color, 0 0 80px $primary-color - - button - font-size: 36px - border-radius: 30px - padding: 12px 20px - max-width: 300px - background: $primary-color - - .second - display: flex - justify-content: center - align-items: center - flex-direction: column - color: $text-main-color - padding: 0 15% - gap: 75px - min-height: 100vh - z-index: 100 - - h2 - font-size: 36px - text-shadow: 0 0 10px $primary-color, 0 0 20px $primary-color,0 0 40px $primary-color, 0 0 80px $primary-color - - .cards-container - display: grid - grid-template-columns: repeat(auto-fit, minmax(275px, 0.15fr)) - justify-content: center - width: 100% - gap: 25px - - .card - background: rgba(255, 255, 255, .015) - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05), 0 8px 15px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.1) - padding: 15px - border-radius: 15px - display: flex - justify-content: flex-start - align-items: center - flex-direction: column - gap: 10px - transition: all 0.25s ease-out - cursor: pointer - - &.animate - animation: 1s both fadeInUp - - &:nth-child(1) - animation-delay: 0s - - &:nth-child(2) - animation-delay: 0.15s - - &:nth-child(3) - animation-delay: 0.3s - - &:nth-child(4) - animation-delay: 0.45s - - @keyframes fadeInUp - from - opacity: 0 - transform: translate3d(0,40px,0) - - to - transform: translate3d(0,0,0) - opacity: 1 - - &:hover - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.04), 0 15px 25px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.2) - - img - width: 52px - height: 52px - - .card h3 - color: $white - - span - color: $text-main-color--darker - text-align: center - - &.animate - animation: 1s both fadeInUp diff --git a/public/src/pages/skeleton/skeleton.tsx b/public/src/pages/skeleton/skeleton.tsx deleted file mode 100644 index 15ccaaee..00000000 --- a/public/src/pages/skeleton/skeleton.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import {ScReact} from "@veglem/screact"; -import {VDomNode} from "@veglem/screact/dist/vdom"; - -export class Skeleton extends ScReact.Component { - - render(): VDomNode { - return ( -
-

- Skeleton page -

-
- ); - } -} \ No newline at end of file diff --git a/public/src/utils/breakpoints.sass b/public/src/utils/breakpoints.sass new file mode 100644 index 00000000..7c9d77e9 --- /dev/null +++ b/public/src/utils/breakpoints.sass @@ -0,0 +1,5 @@ +$xs: 320px +$sm: 576px +$md: 768px +$lg: 992px +$xl: 1200px \ No newline at end of file diff --git a/public/src/utils/variables.sass b/public/src/utils/variables.sass index b7849f3e..bee7ac09 100644 --- a/public/src/utils/variables.sass +++ b/public/src/utils/variables.sass @@ -1,5 +1,5 @@ $white: #fff -$primary-color: #007FFF +$primary-color: #275efe $primary-color--darker: #1e59f1 $secondary-color: #333437 $background-main-color: #222226