diff --git a/assets/main-cd28dd06.css b/assets/main-001dda77.css similarity index 98% rename from assets/main-cd28dd06.css rename to assets/main-001dda77.css index ad6be36..d78df11 100644 --- a/assets/main-cd28dd06.css +++ b/assets/main-001dda77.css @@ -1 +1 @@ -@import"https://fonts.googleapis.com/css2?family=Inter+Tight:ital,wght@0,100..900;1,100..900&display=swap";h1,h2,h3,h4,h5,h6,p{margin:0}p:last-child{margin-bottom:0}ul{margin:0;padding:0;list-style:none}a{color:currentColor;text-decoration:none}button{cursor:pointer}img{display:block;max-width:100%;height:auto}:root{--color-black:28,29,32;--color-white:250,250,250;--color-red:237,59,68;--color-red-dark:224,55,63;--color-green:198,227,39;--color-blue:0,35,232;--color-tomato:230,83,60;--color-slate:43,68,65;--color-orange:255,127,8;--gradient-red:linear-gradient( -90deg, #1c1d20 50%, #69292d 68%, rgba(var(--color-red), 1) 100% );--gradient-red-tablet:linear-gradient( -90deg, #1c1d20 25%, #69292d 43%, rgba(var(--color-red), 1) 100% );--gradient-green:linear-gradient( -90deg, #1c1d20 50%, #596808 68%, rgba(var(--color-green), .76) 100% );--gradient-blue:linear-gradient( -90deg, #1c1d20 50%, #001958 68%, rgba(var(--color-blue), 1) 100% );--gradient-tomato:linear-gradient( -90deg, #1c1d20 50%, #9f3626 68%, rgba(var(--color-tomato), 1) 100% );--gradient-slate:linear-gradient( -90deg, #1c1d20 50%, #1e3633 68%, rgba(var(--color-slate), 1) 100% );--gradient-orange:linear-gradient( -90deg, #1c1d20 50%, #ac5300 68%, rgba(var(--color-orange), 1) 100% )}.gradient{position:absolute;top:0;left:0;width:100%;height:100%;background-repeat:no-repeat}.gradient-red{background:var(--gradient-red)}.gradient-red-tablet{background:var(--gradient-red-tablet)}.gradient-green{background:var(--gradient-green)}.gradient-blue{background:var(--gradient-blue)}.gradient-tomato{background:var(--gradient-tomato)}.gradient-slate{background:var(--gradient-slate)}.gradient-orange{background:var(--gradient-orange)}html{scroll-behavior:smooth}body{background-color:rgba(var(--color-black),1);color:rgba(var(--color-white),1);font-weight:500;font-size:16px;font-family:Inter Tight,sans-serif;line-height:1.5;letter-spacing:-.02em;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}.container{width:100%;min-width:320px;max-width:375px;height:100%;margin:0 auto;padding:0 16px}@media only screen and (min-width: 768px){.container{max-width:768px;padding:0 32px}}@media only screen and (min-width: 1440px){.container{max-width:1440px}}.arrow{--color:rgba(var(--color-white), 1);position:relative;display:flex;justify-content:center;align-items:center;width:21px;border:1px solid var(--color);border-radius:1px}.arrow:before,.arrow:after{content:"";position:absolute;right:-.3px;width:11px;border:1px solid var(--color);border-radius:1px;background:var(--color);transform-origin:right}.arrow:before{transform:rotate(45deg)}.arrow:after{transform:rotate(-45deg)}.arrow.arrow-left{transform:rotate(180deg)}button{border:none;outline:none}button:disabled{cursor:not-allowed}.btn{width:fit-content;padding:18px 24px;border:1px rgba(var(--color-white),.2) solid;border-radius:60px;background-color:transparent;color:rgba(var(--color-white),1);transition:.25s ease-out;transition-property:background-color,border-color}.btn:hover,.btn:focus{border-color:rgba(var(--color-white),1)}.btn-round{max-width:150px;border-radius:50%;aspect-ratio:1/1}.btn-red{border:transparent;background-color:rgba(var(--color-red),1)}.btn-red:hover,.btn-red:focus{background-color:rgba(var(--color-red-dark),1)}input,textarea{padding-bottom:20px;border:none;border-bottom:1px rgba(var(--color-white),.2) solid;background-color:transparent;color:rgba(var(--color-white),1);transition:.25s ease-out;transition-property:border-color,color}input::placeholder,textarea::placeholder{color:rgba(var(--color-white),.6)}input:hover,textarea:hover,input:focus,textarea:focus{border-bottom:1px rgba(var(--color-white),.5) solid;color:rgba(var(--color-white),1);outline:transparent}textarea{resize:none}.page-header{position:absolute;top:0;left:0;z-index:999;width:100%}.header-container{padding-top:32px;padding-right:16px;padding-left:16px}.navigation{display:flex;justify-content:space-between;align-items:center}.header-logo{display:flex;gap:8px;justify-content:space-between;align-items:center}.burger-menu{position:absolute;top:32px;right:16px;display:flex;flex-direction:column;gap:4px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;border:none;background-color:transparent;line-height:0;cursor:pointer}.burger-menu:before,.burger-menu:after{content:"";width:21px;height:2px;background-color:rgba(var(--color-white),1);transition:transform .25s ease-out}.header-list-menu{display:none;padding:10px;background-color:transparent;color:rgba(var(--color-white),1);text-decoration:none;transition:color .25s ease-out}.header-list-menu:hover,.header-list-menu:focus{color:rgba(var(--color-red),1)}.header-list-menu span{position:relative}.header-list-menu span:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:1px;background:currentColor}.header-list-order{display:none}.header-dropdown-menu{position:relative}.header-dropdown-menu-content{display:none}.header-dropdown-menu-link{color:#fafafa;transition:color .25s ease-out}.header-dropdown-menu-link:hover,.header-dropdown-menu-link:focus{color:rgba(var(--color-red),1)}.mobil-menu{position:fixed;top:0;left:0;z-index:99999;display:flex;flex-direction:column;width:100vw;height:100%;padding:32px 16px 64px;background-color:#242527;opacity:0;visibility:hidden;transition:opacity .25s cubic-bezier(.4,0,.2,1),visibility .25s cubic-bezier(.4,0,.2,1)}.mobil-menu.is-open{opacity:1;visibility:visible}.mobil-menu-container{position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:center;height:100%}.mobil-menu-close-btn{top:0;right:0}.is-open .burger-menu:before,.is-open .burger-menu:after{transition:transform .25s ease-out;transform-origin:center}.is-open .burger-menu:before{transform:rotate(45deg) translate(2px,2px)}.is-open .burger-menu:after{transform:rotate(-45deg) translate(2px,-2px)}.mobil-menu-nav{display:flex;justify-content:center;align-items:center;margin:auto}.mobil-menu-nav-item{display:flex;justify-content:center;align-items:center;column-gap:12px}.mobil-menu-nav-link{color:#fafafa;font-weight:500;font-size:16px;font-family:Inter Tight,sans-serif;letter-spacing:-.02em;text-decoration:underline;text-decoration-skip-ink:none}.mobil-menu-nav-link:hover,.mobil-menu-nav-link:focus{color:#ed3b44}.mobil-menu-order-btn{display:flex;justify-content:center;align-items:center;width:fit-content;min-width:164px;height:45px;padding:14px 31px;border:transparent;border-radius:60px;background-color:#ed3b44;font-size:14px}.mobil-menu-order-btn{background-color:rgba(var(--color-red-dark),1)}.mob-menu-overflow{overflow:hidden}.page-header .d-none{display:none}@media only screen and (min-width: 768px){.header-dropdown-menu-content{position:absolute;top:42px;left:50%;z-index:1;display:flex;flex-direction:column;gap:8px;justify-content:space-between;align-items:center;min-width:67px;opacity:1;transition:opacity .25s ease-out;transform:translate(-50%)}.mobil-menu{display:none}.header-container{padding-right:32px;padding-left:32px}.header-list-menu{display:block}.header-list-order{display:block;min-width:163px;padding:18px 24px}.burger-menu{display:none}}.about-me{padding-top:64px}.about-me .accordion li.ac{box-sizing:border-box;margin-top:0;border:none;border-bottom:solid 1px rgba(250,250,250,.2)}.about-me .accordion .title{height:36px;color:#fafafa66;font-weight:600;font-size:16px;font-family:Inter Tight,sans-serif;line-height:24px;line-height:1.5;letter-spacing:-.02em;text-transform:uppercase}.about-me .accordion .ac-trigger{display:flex;justify-content:space-between;align-items:start;padding:0;background-color:#1c1d20;color:#fafafa66;font-weight:600;font-size:16px;font-family:Inter Tight,sans-serif;line-height:1.5;letter-spacing:-.02em;text-transform:uppercase}.about-me .accordion .ac-trigger:after{display:none}.about-me .icon{display:block;min-width:34px;min-height:34px;padding:7px;border:1px solid rgba(250,250,250,.1);border-radius:100px;background:transparent;cursor:pointer;stroke:#fafafa;transition:ease-in .3s}.about-me .is-active .icon{transform:rotate(180deg)}.about-me .accordion .ac-panel .ac-text{margin:0;padding:0;color:#fafafa;font-weight:500;font-size:16px;font-family:Inter Tight,sans-serif;line-height:24px;line-height:1.5;letter-spacing:-.02em}.about-me .accordion .item{width:100%;padding-bottom:20px;background-color:#1c1d20}.about-me .accordion .list{display:flex;flex-direction:column;gap:20px;justify-content:flex-start;align-items:flex-start;color:#fafafa;font-weight:500;font-size:16px;font-family:Inter Tight,sans-serif;line-height:24px;line-height:1.5;letter-spacing:-.02em}.about-me .accordion .text{color:#fafafa;font-weight:500;font-size:16px;font-family:Inter Tight,sans-serif;line-height:24px;line-height:1.5;letter-spacing:-.02em}.about-me .speech{display:flex;flex-direction:column;gap:16px;margin-bottom:32px}.about-me .speech .text{height:500px;padding:32px 32px 0;border-radius:24px;background:#242527;color:#fafafa;font-weight:500;font-size:24px;font-family:Inter Tight,sans-serif;line-height:28px;line-height:1.16667;letter-spacing:-.03em;text-transform:uppercase}.about-me .functional{color:#ed3b44}.about-me .websites{color:#fafafa66}.about-me .pictures{border-radius:24px;background:#1c1d20}.about-me .accordion{margin-bottom:32px}.about-me .container-presentation{display:flex;flex-direction:column;gap:32px;justify-content:flex-start;align-items:flex-start}.about-me .ac-text{width:auto}.about-me-img{width:100%;border-radius:24px}.about-me .about-swiper{--offset:83px;padding-right:var(--offset)}.about-me .about-swiper .next{position:absolute;top:0;right:0;bottom:0;z-index:2;display:flex;justify-content:end;align-items:center;width:var(--offset);padding:0;background:rgba(var(--color-black),1)}.about-me .about-swiper .next .arrow{--color:#3b3b3b;opacity:1}.about-me .about-swiper .next.swiper-button-lock{cursor:not-allowed}.about-me .about-swiper .swiper-slide{width:fit-content;height:100%}.about-me .about-swiper .swiper-slide .btn{display:flex;justify-content:center;align-items:center;width:32vw;max-width:130px;padding:0}.about-me .about-swiper .swiper-slide.swiper-slide-active .btn{background:rgba(var(--color-red),1)}@media only screen and (min-width: 768px){.about-me .speech{margin-bottom:64px}.about-me .speech .text{height:700px;padding:64px 64px 0;font-size:38px;line-height:40px;line-height:1.05263;letter-spacing:-.03em}.about-me .accordion{margin-bottom:64px}.about-me .accordion .title{height:40px}.about-me .accordion .item{padding-bottom:32px}.about-me .container-presentation{gap:16px}.about-me .ac-text{width:auto}.about-me .about-swiper{--offset:104px}.about-me .about-swiper .swiper-slide .btn{width:200px;max-width:100%}}@media only screen and (min-width: 1440px){.about-me{padding-top:96px}.about-me .speech{display:flex;flex-direction:row;flex-wrap:nowrap}.about-me .speech .text{order:1;width:50%;height:700px;padding:64px 64px 0}.about-me .speech .pictures{order:2;width:50%}.about-me .container-presentation.ac-panel{width:100%;width:612px;height:320px;margin-left:696px}.about-me .about-swiper{--offset:112px;margin:0 32px}}.benefits{margin-top:64px;margin-bottom:64px}.benefits-title{padding-right:60px;padding-bottom:32px;color:#fafafa66;font-weight:600;font-size:16px;font-family:Inter Tight,sans-serif;line-height:1.5;letter-spacing:-.02em;text-transform:uppercase}.benefits-list{display:flex;flex-direction:column;gap:16px}.benefits-item{width:100%;height:270px;padding:24px;border-radius:20px;background:#242527}.benefits-box-icon{display:flex;justify-content:center;align-items:center;width:48px;height:48px;border-radius:10px;background:#ed3b44}.benefits-icon{fill:#fafafa}.benefits-item-title{margin-top:64px;margin-bottom:8px;color:#fafafa;font-weight:600;font-size:20px}.benefits-item-text{color:#fafafa99;font-size:16px}.benefits-btn{display:block;margin-top:32px}@media only screen and (min-width: 768px){.benefits{margin-top:96px;margin-bottom:96px}.benefits-list{flex-direction:row;flex-wrap:wrap}.benefits-item{width:calc((100% - 16px)/2)}}@media only screen and (min-width: 1440px){.benefits{margin-top:164px;margin-bottom:164px}.benefits-box-desktop{display:flex;flex-direction:row}.benefits-box{margin-left:412px}.benefits-box-title{display:block}.benefits-title{width:284px;padding:0}.benefits-btn{margin-top:64px}}.visually-hidden{position:absolute;white-space:nowrap;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip-path:inset(50%)}#covers{position:relative;overflow:hidden;height:508px;min-width:320px;background-image:url(/Malibu-developers/assets/elements_vectors-3892dfd4.png);background-size:cover}.marquee{position:absolute;top:0;right:0;left:0;display:flex;flex-direction:column;gap:32px;justify-content:center;align-items:center}@media (min-resolution: 192dpi){#covers{background-image:url(/Malibu-developers/assets/elements_vectors@2x-min-b562207b.png)}}.marquee-inner{display:flex;gap:24px;transform:rotate(16deg)}.marquee-card{display:block;flex-shrink:0;width:282px;height:162px}.marquee-picture{width:282px;object-fit:cover;height:100%}.animation{animation-name:marqueeLine;animation-duration:7s;animation-timing-function:ease-in-out;animation-iteration-count:infinite}@keyframes marqueeLine{0%{transform:translate(20px)}50%{transform:translate(-100px)}to{transform:translate(20px)}}.marquee-inner:nth-child(3){padding-left:300px}.marquee-inner:nth-child(5){padding-left:200px}@media only screen and (max-width: 767px){.marquee-inner:nth-child(6){padding-right:300px}}@media only screen and (min-width: 768px){#covers{height:960px}.marquee,.marquee-inner{gap:44px}.marquee-card{width:544px;height:314px}.marquee-picture{width:544px}}@media only screen and (min-width: 1440px){.marquee{gap:64px}.marquee-inner:nth-child(2){padding-left:496px}.marquee-inner:nth-child(6){padding-right:700px}}.faq .faq-main-title{margin-bottom:32px;color:#fafafa66;font-size:16px;line-height:1.5;letter-spacing:-.02em}.faq .faq-svg{display:block;min-width:34px;min-height:34px;padding:7px;border:1px solid rgba(250,250,250,.1);border-radius:100px;background:transparent;cursor:pointer;stroke:#fafafa;transition:ease-in .3s}.faq .faq-item.is-active .faq-svg{transform:rotate(180deg)}.faq .accordion-container.faq{display:grid;grid-template-columns:1fr}.faq .ac{margin-top:0}.faq .ac.faq-item{margin-top:0;padding:20px 0;border:none;border-bottom:1px solid rgba(250,250,250,.1);background-color:#1c1d20}.faq .ac.faq-item:first-child{border-top:1px solid rgba(250,250,250,.1)}.faq .ac.faq-item span{padding-right:20px;color:#fafafa;font-weight:600;font-size:20px;font-family:Inter Tight,sans-serif;line-height:1.5;letter-spacing:-.02em}.faq p.ac-text{max-width:343px;color:#fafafa;font-weight:500;font-size:16px;font-family:Inter Tight;line-height:1.5;letter-spacing:-.02em}.faq .accordion-container .ac .ac-trigger{display:flex;gap:44px;justify-content:space-between;padding:0;border:none;background:none;color:#fafafa;font-weight:600;font-size:20px;font-family:Inter Tight,sans-serif;line-height:1.5;letter-spacing:-.02em;text-align:left;text-decoration:none}.faq .faq-title-paragraph{max-width:485px}.faq .accordion-container.faq .ac-trigger.faq-btn{display:flex;justify-content:space-between;padding:0;cursor:pointer}.faq .ac .ac-trigger{padding:0}.faq .accordion-container .ac .ac-trigger:focus{color:#fafafa}.faq .ac .ac-trigger:after{display:none}.faq .ac-panel{padding-right:24px}.faq .faq-list .faq-item .ac-comment .faq-paragraph{padding:16px 0 20px;color:#fafafa99;font-weight:500;font-size:16px;font-family:Inter Tight,sans-serif;line-height:1.5;letter-spacing:-.02em;text-align:left}.faq .faq-container{margin-bottom:64px}@media screen and (min-width: 768px){.faq{padding:47px 32px}.faq .faq-main-title{padding:0;font-size:20px}.faq .faq-list .faq-item .ac-comment .faq-paragraph{max-width:656px;padding-top:26px;padding-bottom:24px}.faq .faq-svg{min-width:40px;min-height:40px;padding:10px}.faq .ac-trigger{gap:90px}.faq .ac.faq-item{padding:32px 0;background-color:#1c1d20}.faq .ac-panel{padding-right:32px}.faq .faq-container{margin-bottom:96px}}@media (min-width: 1440px){.faq .faq-list{display:flex;flex-wrap:wrap}.faq .faq-list .ac.faq-item{width:50%;margin:0}.faq .faq-list .faq-item .ac-comment .faq-paragraph{max-width:656px;padding:26px 0;text-align:left}.faq .faq-list .accordion-container{grid-template-columns:50 50}.faq .faq-list .accordion-container .ac .faq-item{margin-bottom:0;padding-bottom:32px;border:none;border-top:1px solid rgba(250,250,250,.1)}.faq .ac.faq-item:nth-child(odd){padding-right:32px;padding-left:0;border:1px solid rgba(250,250,250,.1);border-left:none}.faq .ac.faq-item:nth-child(2n){padding-left:32px;border:1px solid rgba(250,250,250,.1);border-right:none}.faq .faq-container{margin-bottom:164px}}.section-hero{position:relative;height:100dvh}.hero-container{position:relative;z-index:1;display:flex;flex-direction:column;height:100%;padding:16px 0}.hero-page-title{margin:auto;color:rgba(var(--color-white),1);font-weight:500;font-size:50px;line-height:1;letter-spacing:-.08em;text-transform:uppercase}.hero-contact{display:flex;gap:4px;justify-content:space-between;align-items:center}.hero-social-list{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;align-items:center}.hero-social-list-link{display:flex;justify-content:center;align-items:center;width:37px;height:37px;padding:unset}.hero-contact-mail{display:flex;justify-content:center;align-items:center;padding:10px 12px}.hero-contact a{font-size:14px;line-height:1;letter-spacing:-.02em}@media only screen and (min-width: 375px){.hero-social-list{justify-content:space-between}}@media only screen and (min-width: 768px){.section-hero{min-height:1024px}.hero-contact a{font-size:16px}.hero-contact-mail{padding:18px 24px}.hero-social-list-link{width:55px;height:55px}.hero-container{padding-right:32px;padding-left:32px}.hero-page-title{width:632px;font-size:90px}.hero-contact{gap:8px;justify-content:flex-end}}@media only screen and (min-width: 1440px){.hero-page-title{width:1084px;letter-spacing:-.08em}}.projects .project-swiper-slide{overflow:hidden;border-radius:24px;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box}.projects .projects-intro{margin-bottom:32px;color:#fafafa66;font-weight:600;font-size:16px;font-family:Inter Tight,sans-serif;line-height:150%;letter-spacing:-.02em;text-transform:uppercase}.projects .project-top-screen{padding:32px;background-color:#fafafa}.projects .project-img-bg{height:auto;padding:100px 16px;background-color:#242527}.projects .project-img{min-width:311px}/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/.projects .project-one-skill{display:flex;justify-content:center;align-items:center;padding:13px 18px;border:1px solid rgba(28,29,32,.2);border-radius:60px;color:#1c1d20;font-weight:500;font-size:16px;font-family:Inter Tight,sans-serif;letter-spacing:-.02em}.projects .project-lang-skill{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:96px}.projects .project-style-h3{color:#1c1d20;font-weight:500;font-size:24px;font-family:Inter Tight,sans-serif;line-height:117%;letter-spacing:-.03em}.projects .project-btn-style{display:block;padding:13px 32px}.pb-style{padding-bottom:64px}.projects .text-style{display:flex;flex-direction:column;gap:32px}.projects .btns-style{display:flex;gap:12px;justify-content:center;padding:32px 0 0}.projects .team-icon{display:inline-block;width:32px;height:32px;background-size:32px 32px;background-repeat:no-repeat}.projects .div-icon-item{display:flex;justify-content:center;align-items:center;width:52px;height:52px;padding:14px;border:1px solid rgba(250,250,250,.5);background-color:transparent}.projects .div-icon-item:disabled{border:1px solid #fafafa22;cursor:no-drop}.projects .div-icon-item:disabled .arrow{--color:#fafafa;opacity:.22}@media screen and (max-width: 374px){.projects .project-img{min-width:100%}}@media screen and (min-width: 768px){.projects .projects-intro{color:#fafafa66;font-weight:600;font-size:16px;font-family:Inter Tight,sans-serif;line-height:150%;letter-spacing:-.02em;text-transform:uppercase}.projects .project-top-screen{padding:64px}.projects .project-img-bg{padding:120px 45px;background-color:#242527}.projects .btns-style{display:flex;gap:20px;justify-content:center;padding:64px 0 0}.projects .div-icon-item{width:68px;height:68px;padding:18px}.projects .project-btn-style{padding:18px 50px;border-radius:60px}.projects .project-lang-skill{margin-bottom:164px}.projects .project-style-h3{font-weight:500;font-size:44px;line-height:100%}.projects .project-one-skill{padding:18px;border:1px solid rgba(28,29,32,.2);border-radius:60px}.projects .project-img{min-width:614px}}@media screen and (min-width: 1440px){.projects .project-swiper-slide{display:flex}.projects .project-img{min-width:614px}.projects .project-lang-skill{margin-bottom:223px}.projects .project-top-screen{min-width:50%}.projects .project-img-bg{min-width:50%;padding:120px 37px}}.reviews-section{padding:64px 0}.reviews-section .reviews-title{margin-bottom:32px;color:#fafafa66;font-weight:600;text-transform:uppercase}.reviews-section .reviews-list{margin-bottom:32px}.reviews-section .reviews-item{height:376px;padding:32px 24px;border:1px solid rgba(250,250,250,.2);border-radius:20px;background-color:#1c1d20}.reviews-section .reviews-img{width:48px;height:48px;margin-bottom:32px;border-radius:10px}.reviews-section .reviews-subtitle{margin-bottom:8px;color:var(--color-white);font-weight:600;font-size:20px}.reviews-section .reviews-text{overflow:hidden;color:#fafafa99}.reviews-section .btn-wrapper{display:flex;gap:20px;justify-content:center;align-items:center}.reviews-section .reviews-btn{display:flex;justify-content:center;align-items:center;width:52px;height:52px;padding:14px;border:1px solid rgba(250,250,250,.5);border-radius:50%;background-color:transparent;transition:.25s cubic-bezier(.4,0,.2,1)}.reviews-section .reviews-btn-left-icon{transform:rotate(180deg)}.reviews-section .reviews-btn:focus,.reviews-btn:hover{background-color:#242527}.reviews-section .reviews-btn:disabled{border:1px solid #fafafa22;cursor:no-drop}.reviews-section .reviews-btn:disabled .arrow{--color:#fafafa;opacity:.22}.reviews-section .reviews-btn:disabled .btn-icon{stroke:#3b3b3b}.reviews-section .reviews-error-text{margin:0 auto;font-size:30px}.reviews-section .btn-icon{display:inline-block;width:1em;height:1em;fill:#fafafa;stroke:#fafafa;stroke-width:0;stroke-width:2px}@media screen and (min-width: 768px){.reviews-section{padding:96px 0}.reviews-section .reviews-btn{width:66px;height:66px}.reviews-section .btn-icon{width:32px;height:32px}}@media screen and (min-width: 1440px){.reviews-section{padding:164px 0}.reviews-section .reviews-btn{width:68px;height:68px}}.work-together{position:relative;padding:32px 0;background-color:#1c1d20}.work-together .work-title{display:flex;flex-wrap:wrap;margin-bottom:63px;color:#fafafa;font-weight:500;font-size:40px;line-height:100%;letter-spacing:-.03em;text-transform:uppercase}.work-together .work-title img{width:44px;height:44px;margin-right:8px}.work-together .work-title span{color:#ed3b44}.work-together .contact-form{margin-bottom:64px}.work-together .form-inputs{display:flex;flex-direction:column;gap:16px}.work-together .input-group{position:relative;display:flex;flex-direction:column;width:100%;margin-bottom:4px}.work-together .input-error{border-bottom:1px solid #e74a3b}.work-together .input-valid{border-bottom:1px solid #3cbc81}.work-together .error-message{position:absolute;bottom:-20px;left:0;display:none;margin-top:4px;color:#e74a3b;font-weight:500;font-size:14px;line-height:129%;letter-spacing:-.02em}.work-together .success-message{position:absolute;bottom:-20px;left:0;display:none;margin-top:4px;color:green;font-weight:500;font-size:14px;line-height:129%;letter-spacing:-.02em}.work-together .work-button{flex-shrink:0;width:100px;height:100px;margin-top:16px}.work-together .work-links-info{display:flex;flex-direction:column;gap:4px}.work-together .work-links-info .btn{padding:10px 12px;font-size:14px;line-height:1}.work-together .modal{position:absolute;top:0;left:0;z-index:9999;display:none;box-sizing:border-box;width:100%;height:100%;background-color:#00000080}.work-together .modal-content{position:absolute;top:50%;left:50%;box-sizing:border-box;width:343px;height:276px;padding:64px 32px;border:1px solid rgba(250,250,250,.1);border-radius:8px;background-color:#1c1d20;box-shadow:0 5px 15px #0000004d;transform:translate(-50%,-50%)}.work-together .modal-text{width:279px;height:148px}.work-together .modal-message-1{font-weight:600;font-size:20px;line-height:150%;letter-spacing:-.06em;text-align:center}.work-together .modal-message-2{margin-top:16px;font-weight:500;font-size:16px;line-height:150%;letter-spacing:-.02em;text-align:center}.work-together .close-btn{position:absolute;top:20px;right:20px;display:flex;justify-content:center;align-items:center;box-sizing:border-box;width:22px;height:22px;padding:5.5px;border:none;background:none;cursor:pointer}.work-together .close-btn svg{width:11px;height:11px;stroke:var(--main-text);stroke-width:2px}@media only screen and (min-width: 375px){.work-together .work-links-info{flex-direction:row}}@media only screen and (min-width: 768px){.work-together{padding:88px 0 169px;background-image:url(/Malibu-developers/assets/elements-8af15b99.png);background-position:calc(100% + 32px) top;background-size:contain;background-repeat:no-repeat}.work-together .work-title img{width:70px;height:70px}.work-together .work-title{font-size:64px}.work-together .work-title-2d-part{margin-bottom:18px;font-size:64px}.work-together .form-inputs{display:flex;flex-direction:row;flex-wrap:nowrap;gap:32px;align-items:center;margin:0 0 18px}.work-together .input-comment{margin-left:0}.work-together .work-button{width:150px;height:150px;margin-top:0}.work-together .work-links-info{gap:8px}.work-together .work-links-info .btn{padding:18px 32px;font-size:16px}.work-together .error-message,.success-message{padding-left:0}.work-together .modal-content{width:492px;height:246px;padding:64px}.work-together .modal-text{width:364px;height:118px}.work-together .modal-message-1{white-space:nowrap}.work-together .close-btn{width:24px;height:24px;padding:6px}.work-together .close-btn svg{width:12px;height:12px}}@media only screen and (min-width: 1440px){.work-together{background-position:calc(100% + 32px) top}.work-together-content{max-width:1048px;margin:auto}.work-together .form-inputs{gap:32px;margin:0}.work-together .error-message,.success-message{padding-left:196px}.work-together .close-btn{width:24px;height:24px;padding:6px}.work-together .work-title{max-width:542px}.work-together .work-button{margin-left:54px}}.glass{position:absolute;top:0;display:flex;width:50%;height:100%}.glass .glass-elem{position:absolute;height:100%;background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(59,59,59,1) 16.67%,rgba(255,255,255,0) 100%);opacity:.2;transition:transform 2s ease-out;transform:rotateY(90deg);transform-origin:left;-webkit-backdrop-filter:blur(100px);backdrop-filter:blur(100px);mix-blend-mode:difference}.glass.active .glass-elem{transform:rotateY(0)} +@import"https://fonts.googleapis.com/css2?family=Inter+Tight:ital,wght@0,100..900;1,100..900&display=swap";h1,h2,h3,h4,h5,h6,p{margin:0}p:last-child{margin-bottom:0}ul{margin:0;padding:0;list-style:none}a{color:currentColor;text-decoration:none}button{cursor:pointer}img{display:block;max-width:100%;height:auto}:root{--color-black:28,29,32;--color-white:250,250,250;--color-red:237,59,68;--color-red-dark:224,55,63;--color-green:198,227,39;--color-blue:0,35,232;--color-tomato:230,83,60;--color-slate:43,68,65;--color-orange:255,127,8;--gradient-red:linear-gradient( -90deg, #1c1d20 50%, #69292d 68%, rgba(var(--color-red), 1) 100% );--gradient-red-tablet:linear-gradient( -90deg, #1c1d20 25%, #69292d 43%, rgba(var(--color-red), 1) 100% );--gradient-green:linear-gradient( -90deg, #1c1d20 50%, #596808 68%, rgba(var(--color-green), .76) 100% );--gradient-blue:linear-gradient( -90deg, #1c1d20 50%, #001958 68%, rgba(var(--color-blue), 1) 100% );--gradient-tomato:linear-gradient( -90deg, #1c1d20 50%, #9f3626 68%, rgba(var(--color-tomato), 1) 100% );--gradient-slate:linear-gradient( -90deg, #1c1d20 50%, #1e3633 68%, rgba(var(--color-slate), 1) 100% );--gradient-orange:linear-gradient( -90deg, #1c1d20 50%, #ac5300 68%, rgba(var(--color-orange), 1) 100% )}.gradient{position:absolute;top:0;left:0;width:100%;height:100%;background-repeat:no-repeat}.gradient-red{background:var(--gradient-red)}.gradient-red-tablet{background:var(--gradient-red-tablet)}.gradient-green{background:var(--gradient-green)}.gradient-blue{background:var(--gradient-blue)}.gradient-tomato{background:var(--gradient-tomato)}.gradient-slate{background:var(--gradient-slate)}.gradient-orange{background:var(--gradient-orange)}html{scroll-behavior:smooth}body{background-color:rgba(var(--color-black),1);color:rgba(var(--color-white),1);font-weight:500;font-size:16px;font-family:Inter Tight,sans-serif;line-height:1.5;letter-spacing:-.02em;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}.container{width:100%;min-width:320px;max-width:375px;height:100%;margin:0 auto;padding:0 16px}@media only screen and (min-width: 768px){.container{max-width:768px;padding:0 32px}}@media only screen and (min-width: 1440px){.container{max-width:1440px}}.arrow{--color:rgba(var(--color-white), 1);position:relative;display:flex;justify-content:center;align-items:center;width:21px;border:1px solid var(--color);border-radius:1px}.arrow:before,.arrow:after{content:"";position:absolute;right:-.3px;width:11px;border:1px solid var(--color);border-radius:1px;background:var(--color);transform-origin:right}.arrow:before{transform:rotate(45deg)}.arrow:after{transform:rotate(-45deg)}.arrow.arrow-left{transform:rotate(180deg)}button{border:none;outline:none}button:disabled{cursor:not-allowed}.btn{width:fit-content;padding:18px 24px;border:1px rgba(var(--color-white),.2) solid;border-radius:60px;background-color:transparent;color:rgba(var(--color-white),1);transition:.25s ease-out;transition-property:background-color,border-color}.btn:hover,.btn:focus{border-color:rgba(var(--color-white),1)}.btn-round{max-width:150px;border-radius:50%;aspect-ratio:1/1}.btn-red{border:transparent;background-color:rgba(var(--color-red),1)}.btn-red:hover,.btn-red:focus{background-color:rgba(var(--color-red-dark),1)}input,textarea{padding-bottom:20px;border:none;border-bottom:1px rgba(var(--color-white),.2) solid;background-color:transparent;color:rgba(var(--color-white),1);transition:.25s ease-out;transition-property:border-color,color}input::placeholder,textarea::placeholder{color:rgba(var(--color-white),.6)}input:hover,textarea:hover,input:focus,textarea:focus{border-bottom:1px rgba(var(--color-white),.5) solid;color:rgba(var(--color-white),1);outline:transparent}textarea{resize:none}.page-header{position:absolute;top:0;left:0;z-index:999;width:100%}.header-container{padding-top:32px;padding-right:16px;padding-left:16px}.navigation{display:flex;justify-content:space-between;align-items:center}.header-logo{display:flex;gap:8px;justify-content:space-between;align-items:center}.burger-menu{position:absolute;top:32px;right:16px;display:flex;flex-direction:column;gap:4px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;border:none;background-color:transparent;line-height:0;cursor:pointer}.burger-menu:before,.burger-menu:after{content:"";width:21px;height:2px;background-color:rgba(var(--color-white),1);transition:transform .25s ease-out}.header-list-menu{display:none;padding:10px;background-color:transparent;color:rgba(var(--color-white),1);text-decoration:none;transition:color .25s ease-out}.header-list-menu:hover,.header-list-menu:focus{color:rgba(var(--color-red),1)}.header-list-menu span{position:relative}.header-list-menu span:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:1px;background:currentColor}.header-list-order{display:none}.header-dropdown-menu{position:relative}.header-dropdown-menu-content{display:none}.header-dropdown-menu-link{color:#fafafa;transition:color .25s ease-out}.header-dropdown-menu-link:hover,.header-dropdown-menu-link:focus{color:rgba(var(--color-red),1)}.mobil-menu{position:fixed;top:0;left:0;z-index:99999;display:flex;flex-direction:column;width:100vw;height:100%;padding:32px 16px 64px;background-color:#242527;opacity:0;visibility:hidden;transition:opacity .25s cubic-bezier(.4,0,.2,1),visibility .25s cubic-bezier(.4,0,.2,1)}.mobil-menu.is-open{opacity:1;visibility:visible}.mobil-menu-container{position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:center;height:100%}.mobil-menu-close-btn{top:0;right:0}.is-open .burger-menu:before,.is-open .burger-menu:after{transition:transform .25s ease-out;transform-origin:center}.is-open .burger-menu:before{transform:rotate(45deg) translate(2px,2px)}.is-open .burger-menu:after{transform:rotate(-45deg) translate(2px,-2px)}.mobil-menu-nav{display:flex;justify-content:center;align-items:center;margin:auto}.mobil-menu-nav-item{display:flex;justify-content:center;align-items:center;column-gap:12px}.mobil-menu-nav-link{color:#fafafa;font-weight:500;font-size:16px;font-family:Inter Tight,sans-serif;letter-spacing:-.02em;text-decoration:underline;text-decoration-skip-ink:none}.mobil-menu-nav-link:hover,.mobil-menu-nav-link:focus{color:#ed3b44}.mobil-menu-order-btn{display:flex;justify-content:center;align-items:center;width:fit-content;min-width:164px;height:45px;padding:14px 31px;border:transparent;border-radius:60px;background-color:#ed3b44;font-size:14px}.mobil-menu-order-btn{background-color:rgba(var(--color-red-dark),1)}.mob-menu-overflow{overflow:hidden}.page-header .d-none{display:none}@media only screen and (min-width: 768px){.header-dropdown-menu-content{position:absolute;top:42px;left:50%;z-index:1;display:flex;flex-direction:column;gap:8px;justify-content:space-between;align-items:center;min-width:67px;opacity:1;transition:opacity .25s ease-out;transform:translate(-50%)}.mobil-menu{display:none}.header-container{padding-right:32px;padding-left:32px}.header-list-menu{display:block}.header-list-order{display:block;min-width:163px;padding:18px 24px}.burger-menu{display:none}}.about-me{padding-top:64px}.about-me .accordion li.ac{box-sizing:border-box;margin-top:0;border:none;border-bottom:solid 1px rgba(250,250,250,.2)}.about-me .accordion .title{height:36px;color:#fafafa66;font-weight:600;font-size:16px;font-family:Inter Tight,sans-serif;line-height:24px;line-height:1.5;letter-spacing:-.02em;text-transform:uppercase}.about-me .accordion .ac-trigger{display:flex;justify-content:space-between;align-items:start;padding:0;background-color:#1c1d20;color:#fafafa66;font-weight:600;font-size:16px;font-family:Inter Tight,sans-serif;line-height:1.5;letter-spacing:-.02em;text-transform:uppercase}.about-me .accordion .ac-trigger:after{display:none}.about-me .icon{display:block;min-width:34px;min-height:34px;padding:7px;border:1px solid rgba(250,250,250,.1);border-radius:100px;background:transparent;cursor:pointer;stroke:#fafafa;transition:ease-in .3s}.about-me .is-active .icon{transform:rotate(180deg)}.about-me .accordion .ac-panel .ac-text{margin:0;padding:0;color:#fafafa;font-weight:500;font-size:16px;font-family:Inter Tight,sans-serif;line-height:24px;line-height:1.5;letter-spacing:-.02em}.about-me .accordion .item{width:100%;padding-bottom:20px;background-color:#1c1d20}.about-me .accordion .list{display:flex;flex-direction:column;gap:20px;justify-content:flex-start;align-items:flex-start;color:#fafafa;font-weight:500;font-size:16px;font-family:Inter Tight,sans-serif;line-height:24px;line-height:1.5;letter-spacing:-.02em}.about-me .accordion .text{color:#fafafa;font-weight:500;font-size:16px;font-family:Inter Tight,sans-serif;line-height:24px;line-height:1.5;letter-spacing:-.02em}.about-me .speech{display:flex;flex-direction:column;gap:16px;margin-bottom:32px}.about-me .speech .text{height:500px;padding:32px 32px 0;border-radius:24px;background:#242527;color:#fafafa;font-weight:500;font-size:24px;font-family:Inter Tight,sans-serif;line-height:28px;line-height:1.16667;letter-spacing:-.03em;text-transform:uppercase}.about-me .functional{color:#ed3b44}.about-me .websites{color:#fafafa66}.about-me .pictures{border-radius:24px;background:#1c1d20}.about-me .accordion{margin-bottom:32px}.about-me .container-presentation{display:flex;flex-direction:column;gap:32px;justify-content:flex-start;align-items:flex-start}.about-me .ac-text{width:auto}.about-me-img{width:100%;border-radius:24px}.about-me .about-swiper{--offset:83px;padding-right:var(--offset)}.about-me .about-swiper .next{position:absolute;top:0;right:0;bottom:0;z-index:2;display:flex;justify-content:end;align-items:center;width:var(--offset);padding:0;background:rgba(var(--color-black),1)}.about-me .about-swiper .next .arrow{--color:#3b3b3b;opacity:1}.about-me .about-swiper .next.swiper-button-lock{cursor:not-allowed}.about-me .about-swiper .swiper-slide{width:fit-content;height:100%}.about-me .about-swiper .swiper-slide .btn{display:flex;justify-content:center;align-items:center;width:32vw;max-width:130px;padding:0}.about-me .about-swiper .swiper-slide.swiper-slide-active .btn{background:rgba(var(--color-red),1)}@media only screen and (min-width: 768px){.about-me .speech{margin-bottom:64px}.about-me .speech .text{height:700px;padding:64px 64px 0;font-size:38px;line-height:40px;line-height:1.05263;letter-spacing:-.03em}.about-me .accordion{margin-bottom:64px}.about-me .accordion .title{height:40px}.about-me .accordion .item{padding-bottom:32px}.about-me .container-presentation{gap:16px}.about-me .ac-text{width:auto}.about-me .about-swiper{--offset:104px}.about-me .about-swiper .swiper-slide .btn{width:200px;max-width:100%}}@media only screen and (min-width: 1440px){.about-me{padding-top:96px}.about-me .speech{display:flex;flex-direction:row;flex-wrap:nowrap}.about-me .speech .text{order:1;width:50%;height:700px;padding:64px 64px 0}.about-me .speech .pictures{order:2;width:50%}.about-me .container-presentation.ac-panel{width:100%;width:612px;height:320px;margin-left:696px}.about-me .about-swiper{--offset:112px;margin:0 32px}}.benefits{margin-top:64px;margin-bottom:64px}.benefits-title{padding-right:60px;padding-bottom:32px;color:#fafafa66;font-weight:600;font-size:16px;font-family:Inter Tight,sans-serif;line-height:1.5;letter-spacing:-.02em;text-transform:uppercase}.benefits-list{display:flex;flex-direction:column;gap:16px}.benefits-item{width:100%;height:270px;padding:24px;border-radius:20px;background:#242527}.benefits-box-icon{display:flex;justify-content:center;align-items:center;width:48px;height:48px;border-radius:10px;background:#ed3b44}.benefits-icon{fill:#fafafa}.benefits-item-title{margin-top:64px;margin-bottom:8px;color:#fafafa;font-weight:600;font-size:20px}.benefits-item-text{color:#fafafa99;font-size:16px}.benefits-btn{display:block;margin-top:32px}@media only screen and (min-width: 768px){.benefits{margin-top:96px;margin-bottom:96px}.benefits-list{flex-direction:row;flex-wrap:wrap}.benefits-item{width:calc((100% - 16px)/2)}}@media only screen and (min-width: 1440px){.benefits{margin-top:164px;margin-bottom:164px}.benefits-box-desktop{display:flex;flex-direction:row}.benefits-box{margin-left:412px}.benefits-box-title{display:block}.benefits-title{width:284px;padding:0}.benefits-btn{margin-top:64px}}.visually-hidden{position:absolute;white-space:nowrap;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip-path:inset(50%)}#covers{position:relative;overflow:hidden;height:508px;min-width:320px;background-image:url(/Malibu-developers/assets/elements_vectors-3892dfd4.png);background-size:cover}.marquee{position:absolute;top:0;right:0;left:0;display:flex;flex-direction:column;gap:32px;justify-content:center;align-items:center}@media (min-resolution: 192dpi){#covers{background-image:url(/Malibu-developers/assets/elements_vectors@2x-min-b562207b.png)}}.marquee-inner{display:flex;gap:24px;transform:rotate(16deg)}.marquee-card{display:block;flex-shrink:0;width:282px;height:162px}.marquee-picture{width:282px;object-fit:cover;height:100%}.animation{animation-name:marqueeLine;animation-duration:7s;animation-timing-function:ease-in-out;animation-iteration-count:infinite}@keyframes marqueeLine{0%{transform:translate(20px)}50%{transform:translate(-100px)}to{transform:translate(20px)}}.marquee-inner:nth-child(3){padding-left:300px}.marquee-inner:nth-child(5){padding-left:200px}@media only screen and (max-width: 767px){.marquee-inner:nth-child(6){padding-right:300px}}@media only screen and (min-width: 768px){#covers{height:960px}.marquee,.marquee-inner{gap:44px}.marquee-card{width:544px;height:314px}.marquee-picture{width:544px}}@media only screen and (min-width: 1440px){.marquee{gap:64px}.marquee-inner:nth-child(2){padding-left:496px}.marquee-inner:nth-child(6){padding-right:700px}}.faq .faq-main-title{margin-bottom:32px;color:#fafafa66;font-size:16px;line-height:1.5;letter-spacing:-.02em}.faq .faq-svg{display:block;min-width:34px;min-height:34px;padding:7px;border:1px solid rgba(250,250,250,.1);border-radius:100px;background:transparent;cursor:pointer;stroke:#fafafa;transition:ease-in .3s}.faq .faq-item.is-active .faq-svg{transform:rotate(180deg)}.faq .accordion-container.faq{display:grid;grid-template-columns:1fr}.faq .ac{margin-top:0}.faq .ac.faq-item{margin-top:0;padding:20px 0;border:none;border-bottom:1px solid rgba(250,250,250,.1);background-color:#1c1d20}.faq .ac.faq-item:first-child{border-top:1px solid rgba(250,250,250,.1)}.faq .ac.faq-item span{padding-right:20px;color:#fafafa;font-weight:600;font-size:20px;font-family:Inter Tight,sans-serif;line-height:1.5;letter-spacing:-.02em}.faq p.ac-text{max-width:343px;color:#fafafa;font-weight:500;font-size:16px;font-family:Inter Tight;line-height:1.5;letter-spacing:-.02em}.faq .accordion-container .ac .ac-trigger{display:flex;gap:44px;justify-content:space-between;padding:0;border:none;background:none;color:#fafafa;font-weight:600;font-size:20px;font-family:Inter Tight,sans-serif;line-height:1.5;letter-spacing:-.02em;text-align:left;text-decoration:none}.faq .faq-title-paragraph{max-width:485px}.faq .accordion-container.faq .ac-trigger.faq-btn{display:flex;justify-content:space-between;padding:0;cursor:pointer}.faq .ac .ac-trigger{padding:0}.faq .accordion-container .ac .ac-trigger:focus{color:#fafafa}.faq .ac .ac-trigger:after{display:none}.faq .ac-panel{padding-right:24px}.faq .faq-list .faq-item .ac-comment .faq-paragraph{padding:16px 0 20px;color:#fafafa99;font-weight:500;font-size:16px;font-family:Inter Tight,sans-serif;line-height:1.5;letter-spacing:-.02em;text-align:left}.faq .faq-container{margin-bottom:64px}@media screen and (min-width: 768px){.faq{padding:47px 32px}.faq .faq-main-title{padding:0;font-size:20px}.faq .faq-list .faq-item .ac-comment .faq-paragraph{max-width:656px;padding-top:26px;padding-bottom:24px}.faq .faq-svg{min-width:40px;min-height:40px;padding:10px}.faq .ac-trigger{gap:90px}.faq .ac.faq-item{padding:32px 0;background-color:#1c1d20}.faq .ac-panel{padding-right:32px}.faq .faq-container{margin-bottom:96px}}@media (min-width: 1440px){.faq .faq-list{display:flex;flex-wrap:wrap}.faq .faq-list .ac.faq-item{width:50%;margin:0}.faq .faq-list .faq-item .ac-comment .faq-paragraph{max-width:656px;padding:26px 0;text-align:left}.faq .faq-list .accordion-container{grid-template-columns:50 50}.faq .faq-list .accordion-container .ac .faq-item{margin-bottom:0;padding-bottom:32px;border:none;border-top:1px solid rgba(250,250,250,.1)}.faq .ac.faq-item:nth-child(odd){padding-right:32px;padding-left:0;border:1px solid rgba(250,250,250,.1);border-left:none}.faq .ac.faq-item:nth-child(2n){padding-left:32px;border:1px solid rgba(250,250,250,.1);border-right:none}.faq .faq-container{margin-bottom:164px}}.section-hero{position:relative;height:100dvh}.hero-container{position:relative;z-index:1;display:flex;flex-direction:column;height:100%;padding:16px 0}.hero-page-title{margin:auto;color:rgba(var(--color-white),1);font-weight:500;font-size:50px;line-height:1;letter-spacing:-.08em;text-transform:uppercase}.hero-contact{display:flex;gap:4px;justify-content:space-between;align-items:center}.hero-social-list{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;align-items:center}.hero-social-list-link{display:flex;justify-content:center;align-items:center;width:37px;height:37px;padding:unset}.hero-contact-mail{display:flex;justify-content:center;align-items:center;padding:10px 12px}.hero-contact a{font-size:14px;line-height:1;letter-spacing:-.02em}@media only screen and (min-width: 375px){.hero-social-list{justify-content:space-between}}@media only screen and (min-width: 768px){.section-hero{min-height:1024px}.hero-contact a{font-size:16px}.hero-contact-mail{padding:18px 24px}.hero-social-list-link{width:55px;height:55px}.hero-container{padding-right:32px;padding-left:32px}.hero-page-title{width:632px;font-size:90px}.hero-contact{gap:8px;justify-content:flex-end}}@media only screen and (min-width: 1440px){.hero-page-title{width:1084px;letter-spacing:-.08em}}.projects .project-swiper-slide{overflow:hidden;border-radius:24px;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box}.projects .projects-intro{margin-bottom:32px;color:#fafafa66;font-weight:600;font-size:16px;font-family:Inter Tight,sans-serif;line-height:150%;letter-spacing:-.02em;text-transform:uppercase}.projects .project-top-screen{padding:32px;background-color:#fafafa}.projects .project-img-bg{height:auto;padding:100px 16px;background-color:#242527}.projects .project-img{min-width:311px}/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/.projects .project-one-skill{display:flex;justify-content:center;align-items:center;padding:13px 18px;border:1px solid rgba(28,29,32,.2);border-radius:60px;color:#1c1d20;font-weight:500;font-size:16px;font-family:Inter Tight,sans-serif;letter-spacing:-.02em}.projects .project-lang-skill{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:96px}.projects .project-style-h3{color:#1c1d20;font-weight:500;font-size:24px;font-family:Inter Tight,sans-serif;line-height:117%;letter-spacing:-.03em}.projects .project-btn-style{display:block;padding:13px 32px}.pb-style{padding-bottom:64px}.projects .text-style{display:flex;flex-direction:column;gap:32px}.projects .btns-style{display:flex;gap:12px;justify-content:center;padding:32px 0 0}.projects .team-icon{display:inline-block;width:32px;height:32px;background-size:32px 32px;background-repeat:no-repeat}.projects .div-icon-item{display:flex;justify-content:center;align-items:center;width:52px;height:52px;padding:14px;border:1px solid rgba(250,250,250,.5);background-color:transparent}.projects .div-icon-item:disabled{border:1px solid #fafafa22;cursor:no-drop}.projects .div-icon-item:disabled .arrow{--color:#fafafa;opacity:.22}@media screen and (max-width: 374px){.projects .project-img{min-width:100%}}@media screen and (min-width: 768px){.projects .projects-intro{color:#fafafa66;font-weight:600;font-size:16px;font-family:Inter Tight,sans-serif;line-height:150%;letter-spacing:-.02em;text-transform:uppercase}.projects .project-top-screen{padding:64px}.projects .project-img-bg{padding:120px 45px;background-color:#242527}.projects .btns-style{display:flex;gap:20px;justify-content:center;padding:64px 0 0}.projects .div-icon-item{width:68px;height:68px;padding:18px}.projects .project-btn-style{padding:18px 50px;border-radius:60px}.projects .project-lang-skill{margin-bottom:164px}.projects .project-style-h3{font-weight:500;font-size:44px;line-height:100%}.projects .project-one-skill{padding:18px;border:1px solid rgba(28,29,32,.2);border-radius:60px}.projects .project-img{min-width:614px}}@media screen and (min-width: 1440px){.projects .project-swiper-slide{display:flex}.projects .project-img{min-width:614px}.projects .project-lang-skill{margin-bottom:223px}.projects .project-top-screen{min-width:50%}.projects .project-img-bg{min-width:50%;padding:120px 37px}}.reviews-section{padding:64px 0}.reviews-section .reviews-title{margin-bottom:32px;color:#fafafa66;font-weight:600;text-transform:uppercase}.reviews-section .reviews-list{margin-bottom:32px}.reviews-section .reviews-item{height:376px;padding:32px 24px;border:1px solid rgba(250,250,250,.2);border-radius:20px;background-color:#1c1d20}.reviews-section .reviews-img{width:48px;height:48px;margin-bottom:32px;border-radius:10px}.reviews-section .reviews-subtitle{margin-bottom:8px;color:var(--color-white);font-weight:600;font-size:20px}.reviews-section .reviews-text{overflow:hidden;color:#fafafa99}.reviews-section .btn-wrapper{display:flex;gap:20px;justify-content:center;align-items:center}.reviews-section .reviews-btn{display:flex;justify-content:center;align-items:center;width:52px;height:52px;padding:14px;border:1px solid rgba(250,250,250,.5);border-radius:50%;background-color:transparent;transition:.25s cubic-bezier(.4,0,.2,1)}.reviews-section .reviews-btn-left-icon{transform:rotate(180deg)}.reviews-section .reviews-btn:focus,.reviews-btn:hover{background-color:#242527}.reviews-section .reviews-btn:disabled{border:1px solid #fafafa22;cursor:no-drop}.reviews-section .reviews-btn:disabled .arrow{--color:#fafafa;opacity:.22}.reviews-section .reviews-btn:disabled .btn-icon{stroke:#3b3b3b}.reviews-section .reviews-error-text{margin:0 auto;font-size:30px}.reviews-section .btn-icon{display:inline-block;width:1em;height:1em;fill:#fafafa;stroke:#fafafa;stroke-width:0;stroke-width:2px}@media screen and (min-width: 768px){.reviews-section{padding:96px 0}.reviews-section .reviews-btn{width:66px;height:66px}.reviews-section .btn-icon{width:32px;height:32px}}@media screen and (min-width: 1440px){.reviews-section{padding:164px 0}.reviews-section .reviews-btn{width:68px;height:68px}}.work-together{position:relative;padding:32px 0;background-color:#1c1d20}.work-together .work-title{display:flex;flex-wrap:wrap;margin-bottom:63px;color:#fafafa;font-weight:500;font-size:40px;line-height:100%;letter-spacing:-.03em;text-transform:uppercase}.work-together .work-title img{width:44px;height:44px;margin-right:8px}.work-together .work-title span{color:#ed3b44}.work-together .contact-form{margin-bottom:64px}.work-together .form-inputs{display:flex;flex-direction:column;gap:16px}.work-together .input-group{position:relative;display:flex;flex-direction:column;width:100%;margin-bottom:4px}.work-together .input-error{border-bottom:1px solid #e74a3b}.work-together .input-valid{border-bottom:1px solid #3cbc81}.work-together .error-message{position:absolute;bottom:-20px;left:0;display:none;margin-top:4px;color:#e74a3b;font-weight:500;font-size:14px;line-height:129%;letter-spacing:-.02em}.work-together .success-message{position:absolute;bottom:-20px;left:0;display:none;margin-top:4px;color:green;font-weight:500;font-size:14px;line-height:129%;letter-spacing:-.02em}.work-together .work-button{flex-shrink:0;width:100px;height:100px;margin-top:16px}.work-together .work-links-info{display:flex;flex-direction:column;gap:4px}.work-together .work-links-info .btn{padding:10px 12px;font-size:14px;line-height:1}.work-together .modal{position:absolute;top:0;left:0;z-index:9999;display:none;box-sizing:border-box;width:100%;height:100%;background-color:#00000080}.work-together .modal-content{position:absolute;top:50%;left:50%;box-sizing:border-box;width:343px;height:276px;padding:64px 32px;border:1px solid rgba(250,250,250,.1);border-radius:8px;background-color:#1c1d20;box-shadow:0 5px 15px #0000004d;transform:translate(-50%,-50%)}.work-together .modal-text{width:279px;height:148px}.work-together .modal-message-1{font-weight:600;font-size:20px;line-height:150%;letter-spacing:-.06em;text-align:center}.work-together .modal-message-2{margin-top:16px;font-weight:500;font-size:16px;line-height:150%;letter-spacing:-.02em;text-align:center}.work-together .close-btn{position:absolute;top:20px;right:20px;display:flex;justify-content:center;align-items:center;box-sizing:border-box;width:22px;height:22px;padding:5.5px;border:none;background:none;cursor:pointer}.work-together .close-btn svg{width:11px;height:11px;stroke:var(--main-text);stroke-width:2px}@media only screen and (min-width: 375px){.work-together .work-links-info{flex-direction:row}}@media only screen and (min-width: 768px){.work-together{padding:88px 0 169px;background-image:url(/Malibu-developers/assets/elements-8af15b99.png);background-position:calc(100% + 32px) top;background-size:contain;background-repeat:no-repeat}.work-together .work-title img{width:70px;height:70px}.work-together .work-title{font-size:64px}.work-together .work-title-2d-part{margin-bottom:18px;font-size:64px}.work-together .form-inputs{display:flex;flex-direction:row;flex-wrap:nowrap;gap:32px;align-items:center;margin:0 0 18px}.work-together .input-comment{margin-left:0}.work-together .work-button{width:150px;height:150px;margin-top:0}.work-together .work-links-info{gap:8px}.work-together .work-links-info .btn{padding:18px 32px;font-size:16px}.work-together .error-message,.success-message{padding-left:0}.work-together .modal-content{width:492px;height:246px;padding:64px}.work-together .modal-text{width:364px;height:118px}.work-together .modal-message-1{white-space:nowrap}.work-together .close-btn{width:24px;height:24px;padding:6px}.work-together .close-btn svg{width:12px;height:12px}}@media only screen and (min-width: 1440px){.work-together{background-position:calc(100% + 32px) top}.work-together-content{max-width:1048px;margin:auto}.work-together .form-inputs{gap:32px;margin:0}.work-together .error-message,.success-message{padding-left:196px}.work-together .close-btn{width:24px;height:24px;padding:6px}.work-together .work-title{max-width:542px}.work-together .work-button{margin-left:54px}}.glass{position:absolute;top:0;display:flex;overflow:hidden;width:50%;height:100%}.glass .glass-elem{position:absolute;height:100%;background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(59,59,59,1) 16.67%,rgba(255,255,255,0) 100%);opacity:.2;transition:transform 2s ease-out;transform:rotateY(90deg);transform-origin:left;-webkit-backdrop-filter:blur(100px);backdrop-filter:blur(100px);mix-blend-mode:difference}.glass.active .glass-elem{transform:rotateY(0)} diff --git a/assets/main-072ec282.js b/assets/main-072ec282.js new file mode 100644 index 0000000..daba80f --- /dev/null +++ b/assets/main-072ec282.js @@ -0,0 +1,10 @@ +import{A as g,S as f,M as w,K as v,N as L,i as y,a as b}from"./vendor-2e4beb6d.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))c(e);new MutationObserver(e=>{for(const o of e)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&c(s)}).observe(document,{childList:!0,subtree:!0});function i(e){const o={};return e.integrity&&(o.integrity=e.integrity),e.referrerPolicy&&(o.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?o.credentials="include":e.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function c(e){if(e.ep)return;e.ep=!0;const o=i(e);fetch(e.href,o)}})();function E(){new g(".about-me .accordion-container",{showMultiple:!0,openOnInit:[0]});var n=new f(".about-me .about-swiper",{modules:[w,v,L],slidesPerView:"auto",spaceBetween:0,loop:!0,updateOnWindowResize:!0,mousewheel:{enabled:!0,invert:!1},navigation:{nextEl:".about-me .about-swiper .next",preventClicks:!1},keyboard:{enabled:!0,onlyInViewport:!0},breakpoints:{1440:{mousewheel:{enabled:!1}}}});document.addEventListener("keydown",function(t){t.key==="Tab"&&(t.preventDefault(),t.shiftKey?n.slidePrev():n.slideNext())})}E();const p={marqueeCards:document.querySelectorAll(".marquee-card"),sectionCovers:document.querySelector("#covers")},k={root:null,rootMargin:"0px",threshold:0};function M(n){n.forEach(t=>{if(!t.isIntersecting){p.marqueeCards.forEach(i=>{i.classList.remove("animation")});return}p.marqueeCards.forEach(i=>{i.classList.add("animation")})})}let S=new IntersectionObserver(M,k);S.observe(p.sectionCovers);new g(".faq .accordion-container",{duration:600,showMultiple:!1});function q(){const n=document.querySelector(".burger-menu"),t=document.querySelector(".header-list-menu"),i=document.querySelector(".mobil-menu"),c=document.querySelector(".mobil-menu-close-btn"),e=document.querySelector(".header-dropdown-menu-content"),o=document.querySelector(".mobil-menu-nav-list"),s=document.querySelector(".mobil-menu-order-btn"),a=document.querySelector("body");function m(r){console.log(r.target),r.target!==r.currentTarget&&e.classList.toggle("d-none")}function d(r){console.log(r.target),i.classList.add("is-open"),a.classList.add("mob-menu-overflow")}function l(r){i.classList.remove("is-open"),a.classList.remove("mob-menu-overflow")}const u={hideMenu(){e.classList.add("d-none")},showMenu(){e.classList.remove("d-none")}};t.addEventListener("click",m),n.addEventListener("click",d),e.addEventListener("click",m),o.addEventListener("click",d),c.addEventListener("click",l),s.addEventListener("click",l),document.addEventListener("keydown",r=>{r.key=="Escape"&&(r.preventDefault(),l(),u.hideMenu())})}q();function x(){const n=new f(".projects .projects-swiper",{modules:[w,v],updateOnWindowResize:!0,spaceBetween:20,mousewheel:{invert:!1},keyboard:{enabled:!0,onlyInViewport:!0},navigation:{prevEl:".projects .projects-swiper .prev",nextEl:".projects .projects-swiper .next",preventClicks:!1}});document.addEventListener("keydown",function(t){t.key==="Tab"&&(t.preventDefault(),t.shiftKey?n.slidePrev():n.slideNext())})}x();function I(){const n=new f(".reviews-swiper",{modules:[v,w],updateOnWindowResize:!0,spaceBetween:20,height:302,keyboard:{enabled:!0,onlyInViewport:!0},mousewheel:{invert:!1},breakpoints:{768:{slidesPerView:2,spaceBetween:16},1440:{slidesPerView:4,spaceBetween:16}},navigation:{prevEl:".reviews-swiper .prev",nextEl:".reviews-swiper .next"}});document.addEventListener("keydown",function(s){s.key==="Tab"&&(s.preventDefault(),s.shiftKey?n.slidePrev():n.slideNext())});let t=1;const i={container:document.querySelector(".reviews-list"),btnPrev:document.querySelector(".reviews-swiper .prev"),btnNext:document.querySelector(".reviews-swiper .next")};async function c(s){try{const a=await b.get("https://portfolio-js.b.goit.study/api/reviews",{params:{id:s}});if(a.status!==200)throw new Error(a.status);return a.data}catch(a){throw new Error(`Fetching reviews failed: ${a.message}`)}}async function e(){try{const a=(await c(t)).map(({_id:m,author:d,avatar_url:l,review:u})=>` +
  • +
    + ${d} +

    ${d}

    +

    ${u}

    +
    +
  • + `).join("");i.container.insertAdjacentHTML("beforeend",a)}catch(s){i.container.insertAdjacentHTML("afterbegin",'

    Not found

    '),o(s.message)}}e();const o=s=>{y.settings({timeout:5e3,titleColor:"#fff",position:"center",messageColor:"#fff",icon:""}),y.error({message:s,timeout:5e3,position:"center",backgroundColor:"#EF4040"})}}I();function O(){const n=JSON.parse(localStorage.getItem("feedback-form-state"))??{email:"",comment:""},t=document.getElementById("modal");t.querySelector(".modal-content");const i=t.querySelector(".close-btn"),c=document.getElementById("contact-form"),e=c.email,o=c.comment,s=document.querySelector(".success-message"),a=document.querySelector(".error-message");e.value=n.email,o.value=n.comment;function m(){t.style.display="flex"}function d(){t.style.display="none"}i.addEventListener("click",d),t.addEventListener("click",function(r){r.target===t&&d()}),document.addEventListener("keydown",function(r){r.key==="Escape"&&d()}),c.addEventListener("input",r=>{n[r.target.name]=r.target.value.trim(),localStorage.setItem("feedback-form-state",JSON.stringify(n))}),c.addEventListener("submit",function(r){r.preventDefault(),b.post("https://portfolio-js.b.goit.study/api/requests",n).then(()=>{s.style.display="block",m()}).catch(()=>{a.style.display="block"}),localStorage.clear(),r.target.reset(),n.email="",n.comment=""});const l=e.nextElementSibling,u=l.nextElementSibling;l.style.display="none",u.style.display="none",e.addEventListener("blur",function(){e.value.trim()?e.validity.valid?(e.classList.add("input-valid"),e.classList.remove("input-error"),l.style.display="none",u.style.display="block"):(e.classList.add("input-error"),e.classList.remove("input-valid"),l.style.display="block",u.style.display="none"):(l.style.display="none",u.style.display="none",e.classList.remove("input-error"),e.classList.remove("input-valid"))})}O();let j=0;console.log(j);window.addEventListener("resize",()=>{let n=window.innerWidth;console.log(n%50==0),n%25==0&&h()});function h(){const n=document.querySelectorAll(".glass");let t=10;const i=5,c={width:0};n.forEach(e=>{if(e.innerHTML="",innerWidth<375&&(e.style.width="90%",t=6),375`;o+=a}e.insertAdjacentHTML("beforeend",o),setTimeout(()=>{e.classList.add("active")},500)})}h(); +//# sourceMappingURL=main-072ec282.js.map diff --git a/assets/main-d61e4fa3.js.map b/assets/main-072ec282.js.map similarity index 58% rename from assets/main-d61e4fa3.js.map rename to assets/main-072ec282.js.map index 9d2686f..2d8112f 100644 --- a/assets/main-d61e4fa3.js.map +++ b/assets/main-072ec282.js.map @@ -1 +1 @@ -{"version":3,"file":"main-d61e4fa3.js","sources":["../../src/js/about-me.js","../../src/js/covers.js","../../src/js/faq.js","../../src/js/header.js","../../src/js/projects.js","../../src/js/reviews.js","../../src/js/work-together.js","../../src/js/Glass.js"],"sourcesContent":["import Accordion from 'accordion-js';\nimport 'accordion-js/dist/accordion.min.css';\nimport Swiper from 'swiper/bundle';\nimport { Mousewheel, Keyboard, Navigation } from 'swiper/modules';\n// import Swiper styles\n// import 'swiper/css';\n// import 'swiper/css/navigation';\nfunction aboutMeInit() {\n new Accordion('.about-me .accordion-container', {\n showMultiple: true,\n openOnInit: [0],\n });\n\n var swiper = new Swiper('.about-me .about-swiper', {\n modules: [Mousewheel, Keyboard, Navigation],\n // slidesPerView: 2, // Кількість слайдів, які видно одночасно\n slidesPerView: 'auto', // Кількість слайдів, які видно одночасно\n spaceBetween: 0, // Відступ між слайдами\n loop: true, // Безкінечна прокрутка\n updateOnWindowResize: true,\n // allowSlideNext: true,\n\n mousewheel: {\n enabled: true,\n invert: false,\n },\n navigation: {\n nextEl: '.about-me .about-swiper .next',\n preventClicks: false,\n },\n keyboard: {\n enabled: true,\n onlyInViewport: true,\n },\n breakpoints: {\n 1440: {\n mousewheel: {\n enabled: false,\n },\n },\n },\n });\n document.addEventListener('keydown', function (event) {\n if (event.key === 'Tab') {\n event.preventDefault();\n if (event.shiftKey) {\n swiper.slidePrev();\n } else {\n swiper.slideNext();\n }\n }\n });\n}\naboutMeInit();\n","const coverRefs = {\n marqueeCards: document.querySelectorAll('.marquee-card'),\n sectionCovers: document.querySelector('#covers'),\n};\n\nconst observerOptions = {\n root: null,\n rootMargin: '0px',\n threshold: 0,\n};\n\nfunction animateCards(entries) {\n entries.forEach(entry => {\n if (!entry.isIntersecting) {\n coverRefs.marqueeCards.forEach(card => {\n card.classList.remove('animation');\n });\n return;\n }\n coverRefs.marqueeCards.forEach(card => {\n card.classList.add('animation');\n });\n });\n}\n\nlet observer = new IntersectionObserver(animateCards, observerOptions);\nobserver.observe(coverRefs.sectionCovers);\n","import Accordion from 'accordion-js';\nimport 'accordion-js/dist/accordion.min.css';\n\nnew Accordion('.faq .accordion-container', {\n duration: 600,\n showMultiple: false,\n});\n","function headerInit() {\n const burgerMenu = document.querySelector('.burger-menu');\n const menuEl = document.querySelector('.header-list-menu');\n const mobMenu = document.querySelector('.mobil-menu');\n const closeBtn = document.querySelector('.mobil-menu-close-btn');\n const dropdownMenu = document.querySelector(\n '.header-dropdown-menu-content'\n );\n const hiddenMenu = document.querySelector('.mobil-menu-nav-list');\n const orderBtn = document.querySelector('.mobil-menu-order-btn');\n const bodyEl = document.querySelector('body');\n\n // console.log(burgerMenu);\n // console.log(menuEl);\n // console.log(mobMenu);\n // console.log(closeBtn);\n // console.log(dropdownLink);\n\n function toggleDropdownMenu(e) {\n console.log(e.target);\n if (e.target !== e.currentTarget) {\n dropdownMenu.classList.toggle('d-none');\n }\n }\n function openModalMenu(e) {\n console.log(e.target);\n mobMenu.classList.add('is-open');\n bodyEl.classList.add('mob-menu-overflow');\n }\n\n function closeModalMenu(e) {\n mobMenu.classList.remove('is-open');\n bodyEl.classList.remove('mob-menu-overflow');\n }\n const header = {\n hideMenu() {\n dropdownMenu.classList.add('d-none');\n },\n showMenu() {\n dropdownMenu.classList.remove('d-none');\n },\n };\n\n menuEl.addEventListener('click', toggleDropdownMenu);\n burgerMenu.addEventListener('click', openModalMenu);\n dropdownMenu.addEventListener('click', toggleDropdownMenu);\n hiddenMenu.addEventListener('click', openModalMenu);\n closeBtn.addEventListener('click', closeModalMenu);\n orderBtn.addEventListener('click', closeModalMenu);\n document.addEventListener('keydown', e => {\n if (e.key == 'Escape') {\n e.preventDefault();\n closeModalMenu();\n header.hideMenu();\n }\n });\n}\nheaderInit();\n","import Swiper from 'swiper';\nimport { Keyboard, Mousewheel } from 'swiper/modules';\n\n// init Swiper:\nfunction projectsInit() {\n const swiper = new Swiper('.projects .projects-swiper', {\n modules: [Mousewheel, Keyboard],\n updateOnWindowResize: true,\n spaceBetween: 20,\n mousewheel: {\n invert: false,\n },\n keyboard: {\n enabled: true,\n onlyInViewport: true,\n },\n navigation: {\n prevEl: '.projects .projects-swiper .prev',\n nextEl: '.projects .projects-swiper .next',\n preventClicks: false,\n },\n });\n document.addEventListener('keydown', function (event) {\n if (event.key === 'Tab') {\n event.preventDefault();\n if (event.shiftKey) {\n swiper.slidePrev();\n } else {\n swiper.slideNext();\n }\n }\n });\n}\nprojectsInit();\n","import axios from 'axios';\nimport iziToast from 'izitoast';\nimport 'izitoast/dist/css/iziToast.min.css';\nimport Swiper from 'swiper';\nimport { Keyboard, Mousewheel } from 'swiper/modules';\n\nfunction reviewsInit() {\n const swiper = new Swiper('.reviews-swiper', {\n modules: [Keyboard, Mousewheel],\n updateOnWindowResize: true,\n spaceBetween: 20,\n height: 302,\n keyboard: {\n enabled: true,\n onlyInViewport: true,\n },\n mousewheel: {\n invert: false,\n },\n breakpoints: {\n 768: {\n slidesPerView: 2,\n spaceBetween: 16,\n },\n 1440: {\n slidesPerView: 4,\n spaceBetween: 16,\n },\n },\n\n navigation: {\n prevEl: '.reviews-swiper .prev',\n nextEl: '.reviews-swiper .next',\n // preventClicks: false,\n },\n });\n\n document.addEventListener('keydown', function (e) {\n if (e.key === 'Tab') {\n e.preventDefault();\n if (e.shiftKey) {\n swiper.slidePrev();\n } else {\n swiper.slideNext();\n }\n }\n });\n let currentId = 1;\n\n const selectors = {\n container: document.querySelector('.reviews-list'),\n btnPrev: document.querySelector('.reviews-swiper .prev'),\n btnNext: document.querySelector('.reviews-swiper .next'),\n };\n\n async function fetchReviews(id) {\n try {\n const response = await axios.get(\n 'https://portfolio-js.b.goit.study/api/reviews',\n { params: { id } }\n );\n\n if (response.status !== 200) {\n throw new Error(response.status);\n }\n return response.data;\n } catch (error) {\n throw new Error(`Fetching reviews failed: ${error.message}`);\n }\n }\n\n async function renderReviews() {\n try {\n const reviews = await fetchReviews(currentId);\n const markup = reviews\n .map(\n ({ _id, author, avatar_url, review }) => `\n
  • \n
    \n \"${author}\"/\n

    ${author}

    \n

    ${review}

    \n
    \n
  • \n `\n )\n .join('');\n\n selectors.container.insertAdjacentHTML('beforeend', markup);\n } catch (error) {\n selectors.container.insertAdjacentHTML(\n 'afterbegin',\n `

    Not found

    `\n );\n showNotification(error.message);\n }\n }\n\n renderReviews();\n\n // Function: show notification\n const showNotification = msg => {\n iziToast.settings({\n timeout: 5000,\n titleColor: '#fff',\n position: 'center',\n messageColor: '#fff',\n icon: '',\n });\n iziToast.error({\n message: msg,\n timeout: 5000,\n position: 'center',\n backgroundColor: '#EF4040',\n });\n };\n}\nreviewsInit();\n","import axios from 'axios';\n// Submit btn going to modal content and clear the input after\nfunction workTogheterInit() {\n const formData = JSON.parse(\n localStorage.getItem('feedback-form-state')\n ) ?? {\n email: '',\n comment: '',\n };\n\n const modal = document.getElementById('modal');\n const modalContent = modal.querySelector('.modal-content');\n const closeModalBtn = modal.querySelector('.close-btn');\n const form = document.getElementById('contact-form');\n const emailInput = form.email;\n const commentInput = form.comment;\n const successMessage = document.querySelector('.success-message');\n const errorMessage = document.querySelector('.error-message');\n\n emailInput.value = formData.email;\n commentInput.value = formData.comment;\n\n function openModal() {\n modal.style.display = 'flex';\n }\n function closeModal() {\n modal.style.display = 'none';\n }\n\n closeModalBtn.addEventListener('click', closeModal);\n\n modal.addEventListener('click', function (event) {\n if (event.target === modal) {\n closeModal();\n }\n });\n\n document.addEventListener('keydown', function (event) {\n if (event.key === 'Escape') {\n closeModal();\n }\n });\n form.addEventListener('input', e => {\n formData[e.target.name] = e.target.value.trim();\n localStorage.setItem('feedback-form-state', JSON.stringify(formData));\n });\n\n form.addEventListener('submit', function (event) {\n event.preventDefault();\n\n axios\n .post('https://portfolio-js.b.goit.study/api/requests', formData)\n .then(() => {\n successMessage.style.display = 'block';\n openModal();\n })\n .catch(() => {\n errorMessage.style.display = 'block';\n });\n localStorage.clear();\n event.target.reset();\n formData.email = '';\n formData.comment = '';\n });\n\n // Input border color changing and adding appropriate message\n\n const errorMessage2 = emailInput.nextElementSibling;\n const successMessage2 = errorMessage2.nextElementSibling;\n\n errorMessage2.style.display = 'none';\n successMessage2.style.display = 'none';\n\n emailInput.addEventListener('blur', function () {\n if (emailInput.value.trim()) {\n if (emailInput.validity.valid) {\n emailInput.classList.add('input-valid');\n emailInput.classList.remove('input-error');\n errorMessage2.style.display = 'none';\n successMessage2.style.display = 'block';\n } else {\n emailInput.classList.add('input-error');\n emailInput.classList.remove('input-valid');\n errorMessage2.style.display = 'block';\n successMessage2.style.display = 'none';\n }\n } else {\n errorMessage2.style.display = 'none';\n successMessage2.style.display = 'none';\n emailInput.classList.remove('input-error');\n emailInput.classList.remove('input-valid');\n }\n });\n}\nworkTogheterInit();\n","import '../css/glass.css';\n\n(() => {\n const glassList = document.querySelectorAll('.glass');\n let count = 10;\n const globalOffset = 0;\n const offset = 5;\n const compensation = {\n width: 0,\n };\n let innerWidth = window.innerWidth;\n\n window.addEventListener('resize', () => {\n innerWidth = window.innerWidth;\n const mobileMenu = document.querySelector('.mobil-menu');\n const isOpen = mobileMenu.classList.contains('is-open');\n // console.log(innerWidth, isOpen);\n\n if (isOpen) {\n // console.log('is open');\n }\n if (375 < innerWidth && innerWidth < 768) {\n // console.log(' Less 768');\n }\n if (768 < innerWidth && innerWidth < 1440) {\n // console.log('Less 1440');\n }\n });\n glassList.forEach(glass => {\n if (innerWidth < 375) {\n // console.log('Less 375');\n glass.style.width = '90%';\n count = 6;\n }\n if (375 < innerWidth && innerWidth < 768) {\n let parent = glass.closest('.gradient');\n parent.classList.remove('gradient-red');\n parent.classList.add('gradient-red-tablet');\n glass.style.width = '75%';\n count = 6;\n // console.log('Less 768');\n }\n if (768 < innerWidth && innerWidth < 1440) {\n // console.log('Less 1440');\n }\n let elem = document.createElement('div');\n compensation.width = glass.clientWidth / count + offset;\n // console.log(compensation);\n elem.classList.add('glass-elem');\n elem.style.width = `${compensation.width}px`;\n for (let i = 0; i < count; i++) {\n // for (let i = count - 1; i >= 0; i--) {\n const clone = elem.cloneNode(true);\n clone.style.left = `${compensation.width * i - offset * i}px`;\n // clone.style.left = `${compensation * i}px`;\n glass.insertAdjacentElement('beforeend', clone);\n }\n setTimeout(() => {\n glass.classList.add('active');\n }, 500);\n });\n})();\n"],"names":["aboutMeInit","Accordion","swiper","Swiper","Mousewheel","Keyboard","Navigation","event","coverRefs","observerOptions","animateCards","entries","entry","card","observer","headerInit","burgerMenu","menuEl","mobMenu","closeBtn","dropdownMenu","hiddenMenu","orderBtn","bodyEl","toggleDropdownMenu","e","openModalMenu","closeModalMenu","header","projectsInit","reviewsInit","currentId","selectors","fetchReviews","id","response","axios","error","renderReviews","markup","_id","author","avatar_url","review","showNotification","msg","iziToast","workTogheterInit","formData","modal","closeModalBtn","form","emailInput","commentInput","successMessage","errorMessage","openModal","closeModal","errorMessage2","successMessage2","glassList","count","offset","compensation","innerWidth","glass","parent","elem","i","clone"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"main-072ec282.js","sources":["../../src/js/about-me.js","../../src/js/covers.js","../../src/js/faq.js","../../src/js/header.js","../../src/js/projects.js","../../src/js/reviews.js","../../src/js/work-together.js","../../src/js/Glass.js"],"sourcesContent":["import Accordion from 'accordion-js';\nimport 'accordion-js/dist/accordion.min.css';\nimport Swiper from 'swiper/bundle';\nimport { Mousewheel, Keyboard, Navigation } from 'swiper/modules';\n// import Swiper styles\n// import 'swiper/css';\n// import 'swiper/css/navigation';\nfunction aboutMeInit() {\n new Accordion('.about-me .accordion-container', {\n showMultiple: true,\n openOnInit: [0],\n });\n\n var swiper = new Swiper('.about-me .about-swiper', {\n modules: [Mousewheel, Keyboard, Navigation],\n // slidesPerView: 2, // Кількість слайдів, які видно одночасно\n slidesPerView: 'auto', // Кількість слайдів, які видно одночасно\n spaceBetween: 0, // Відступ між слайдами\n loop: true, // Безкінечна прокрутка\n updateOnWindowResize: true,\n // allowSlideNext: true,\n\n mousewheel: {\n enabled: true,\n invert: false,\n },\n navigation: {\n nextEl: '.about-me .about-swiper .next',\n preventClicks: false,\n },\n keyboard: {\n enabled: true,\n onlyInViewport: true,\n },\n breakpoints: {\n 1440: {\n mousewheel: {\n enabled: false,\n },\n },\n },\n });\n document.addEventListener('keydown', function (event) {\n if (event.key === 'Tab') {\n event.preventDefault();\n if (event.shiftKey) {\n swiper.slidePrev();\n } else {\n swiper.slideNext();\n }\n }\n });\n}\naboutMeInit();\n","const coverRefs = {\n marqueeCards: document.querySelectorAll('.marquee-card'),\n sectionCovers: document.querySelector('#covers'),\n};\n\nconst observerOptions = {\n root: null,\n rootMargin: '0px',\n threshold: 0,\n};\n\nfunction animateCards(entries) {\n entries.forEach(entry => {\n if (!entry.isIntersecting) {\n coverRefs.marqueeCards.forEach(card => {\n card.classList.remove('animation');\n });\n return;\n }\n coverRefs.marqueeCards.forEach(card => {\n card.classList.add('animation');\n });\n });\n}\n\nlet observer = new IntersectionObserver(animateCards, observerOptions);\nobserver.observe(coverRefs.sectionCovers);\n","import Accordion from 'accordion-js';\nimport 'accordion-js/dist/accordion.min.css';\n\nnew Accordion('.faq .accordion-container', {\n duration: 600,\n showMultiple: false,\n});\n","function headerInit() {\n const burgerMenu = document.querySelector('.burger-menu');\n const menuEl = document.querySelector('.header-list-menu');\n const mobMenu = document.querySelector('.mobil-menu');\n const closeBtn = document.querySelector('.mobil-menu-close-btn');\n const dropdownMenu = document.querySelector(\n '.header-dropdown-menu-content'\n );\n const hiddenMenu = document.querySelector('.mobil-menu-nav-list');\n const orderBtn = document.querySelector('.mobil-menu-order-btn');\n const bodyEl = document.querySelector('body');\n\n // console.log(burgerMenu);\n // console.log(menuEl);\n // console.log(mobMenu);\n // console.log(closeBtn);\n // console.log(dropdownLink);\n\n function toggleDropdownMenu(e) {\n console.log(e.target);\n if (e.target !== e.currentTarget) {\n dropdownMenu.classList.toggle('d-none');\n }\n }\n function openModalMenu(e) {\n console.log(e.target);\n mobMenu.classList.add('is-open');\n bodyEl.classList.add('mob-menu-overflow');\n }\n\n function closeModalMenu(e) {\n mobMenu.classList.remove('is-open');\n bodyEl.classList.remove('mob-menu-overflow');\n }\n const header = {\n hideMenu() {\n dropdownMenu.classList.add('d-none');\n },\n showMenu() {\n dropdownMenu.classList.remove('d-none');\n },\n };\n\n menuEl.addEventListener('click', toggleDropdownMenu);\n burgerMenu.addEventListener('click', openModalMenu);\n dropdownMenu.addEventListener('click', toggleDropdownMenu);\n hiddenMenu.addEventListener('click', openModalMenu);\n closeBtn.addEventListener('click', closeModalMenu);\n orderBtn.addEventListener('click', closeModalMenu);\n document.addEventListener('keydown', e => {\n if (e.key == 'Escape') {\n e.preventDefault();\n closeModalMenu();\n header.hideMenu();\n }\n });\n}\nheaderInit();\n","import Swiper from 'swiper';\nimport { Keyboard, Mousewheel } from 'swiper/modules';\n\n// init Swiper:\nfunction projectsInit() {\n const swiper = new Swiper('.projects .projects-swiper', {\n modules: [Mousewheel, Keyboard],\n updateOnWindowResize: true,\n spaceBetween: 20,\n mousewheel: {\n invert: false,\n },\n keyboard: {\n enabled: true,\n onlyInViewport: true,\n },\n navigation: {\n prevEl: '.projects .projects-swiper .prev',\n nextEl: '.projects .projects-swiper .next',\n preventClicks: false,\n },\n });\n document.addEventListener('keydown', function (event) {\n if (event.key === 'Tab') {\n event.preventDefault();\n if (event.shiftKey) {\n swiper.slidePrev();\n } else {\n swiper.slideNext();\n }\n }\n });\n}\nprojectsInit();\n","import axios from 'axios';\nimport iziToast from 'izitoast';\nimport 'izitoast/dist/css/iziToast.min.css';\nimport Swiper from 'swiper';\nimport { Keyboard, Mousewheel } from 'swiper/modules';\n\nfunction reviewsInit() {\n const swiper = new Swiper('.reviews-swiper', {\n modules: [Keyboard, Mousewheel],\n updateOnWindowResize: true,\n spaceBetween: 20,\n height: 302,\n keyboard: {\n enabled: true,\n onlyInViewport: true,\n },\n mousewheel: {\n invert: false,\n },\n breakpoints: {\n 768: {\n slidesPerView: 2,\n spaceBetween: 16,\n },\n 1440: {\n slidesPerView: 4,\n spaceBetween: 16,\n },\n },\n\n navigation: {\n prevEl: '.reviews-swiper .prev',\n nextEl: '.reviews-swiper .next',\n // preventClicks: false,\n },\n });\n\n document.addEventListener('keydown', function (e) {\n if (e.key === 'Tab') {\n e.preventDefault();\n if (e.shiftKey) {\n swiper.slidePrev();\n } else {\n swiper.slideNext();\n }\n }\n });\n let currentId = 1;\n\n const selectors = {\n container: document.querySelector('.reviews-list'),\n btnPrev: document.querySelector('.reviews-swiper .prev'),\n btnNext: document.querySelector('.reviews-swiper .next'),\n };\n\n async function fetchReviews(id) {\n try {\n const response = await axios.get(\n 'https://portfolio-js.b.goit.study/api/reviews',\n { params: { id } }\n );\n\n if (response.status !== 200) {\n throw new Error(response.status);\n }\n return response.data;\n } catch (error) {\n throw new Error(`Fetching reviews failed: ${error.message}`);\n }\n }\n\n async function renderReviews() {\n try {\n const reviews = await fetchReviews(currentId);\n const markup = reviews\n .map(\n ({ _id, author, avatar_url, review }) => `\n
  • \n
    \n \"${author}\"/\n

    ${author}

    \n

    ${review}

    \n
    \n
  • \n `\n )\n .join('');\n\n selectors.container.insertAdjacentHTML('beforeend', markup);\n } catch (error) {\n selectors.container.insertAdjacentHTML(\n 'afterbegin',\n `

    Not found

    `\n );\n showNotification(error.message);\n }\n }\n\n renderReviews();\n\n // Function: show notification\n const showNotification = msg => {\n iziToast.settings({\n timeout: 5000,\n titleColor: '#fff',\n position: 'center',\n messageColor: '#fff',\n icon: '',\n });\n iziToast.error({\n message: msg,\n timeout: 5000,\n position: 'center',\n backgroundColor: '#EF4040',\n });\n };\n}\nreviewsInit();\n","import axios from 'axios';\n// Submit btn going to modal content and clear the input after\nfunction workTogheterInit() {\n const formData = JSON.parse(\n localStorage.getItem('feedback-form-state')\n ) ?? {\n email: '',\n comment: '',\n };\n\n const modal = document.getElementById('modal');\n const modalContent = modal.querySelector('.modal-content');\n const closeModalBtn = modal.querySelector('.close-btn');\n const form = document.getElementById('contact-form');\n const emailInput = form.email;\n const commentInput = form.comment;\n const successMessage = document.querySelector('.success-message');\n const errorMessage = document.querySelector('.error-message');\n\n emailInput.value = formData.email;\n commentInput.value = formData.comment;\n\n function openModal() {\n modal.style.display = 'flex';\n }\n function closeModal() {\n modal.style.display = 'none';\n }\n\n closeModalBtn.addEventListener('click', closeModal);\n\n modal.addEventListener('click', function (event) {\n if (event.target === modal) {\n closeModal();\n }\n });\n\n document.addEventListener('keydown', function (event) {\n if (event.key === 'Escape') {\n closeModal();\n }\n });\n form.addEventListener('input', e => {\n formData[e.target.name] = e.target.value.trim();\n localStorage.setItem('feedback-form-state', JSON.stringify(formData));\n });\n\n form.addEventListener('submit', function (event) {\n event.preventDefault();\n\n axios\n .post('https://portfolio-js.b.goit.study/api/requests', formData)\n .then(() => {\n successMessage.style.display = 'block';\n openModal();\n })\n .catch(() => {\n errorMessage.style.display = 'block';\n });\n localStorage.clear();\n event.target.reset();\n formData.email = '';\n formData.comment = '';\n });\n\n // Input border color changing and adding appropriate message\n\n const errorMessage2 = emailInput.nextElementSibling;\n const successMessage2 = errorMessage2.nextElementSibling;\n\n errorMessage2.style.display = 'none';\n successMessage2.style.display = 'none';\n\n emailInput.addEventListener('blur', function () {\n if (emailInput.value.trim()) {\n if (emailInput.validity.valid) {\n emailInput.classList.add('input-valid');\n emailInput.classList.remove('input-error');\n errorMessage2.style.display = 'none';\n successMessage2.style.display = 'block';\n } else {\n emailInput.classList.add('input-error');\n emailInput.classList.remove('input-valid');\n errorMessage2.style.display = 'block';\n successMessage2.style.display = 'none';\n }\n } else {\n errorMessage2.style.display = 'none';\n successMessage2.style.display = 'none';\n emailInput.classList.remove('input-error');\n emailInput.classList.remove('input-valid');\n }\n });\n}\nworkTogheterInit();\n","import '../css/glass.css';\n\nlet resize = 0;\nconsole.log(resize);\nwindow.addEventListener('resize', () => {\n let size = window.innerWidth;\n // console.log(size, resize);\n console.log(size % 50 == 0);\n\n if (size % 25 == 0) {\n // resize = 375;\n // console.log(size, resize);\n addGlassEffect();\n }\n\n // if (size < 375 && resize !== 375) {\n // resize = 375;\n // console.log(size, resize);\n // addGlassEffect();\n // }\n // if (size > 375 && size < 767 && resize !== 767) {\n // resize = 767;\n // console.log(size, resize);\n // addGlassEffect();\n // }\n // if (size > 768 && size < 1440 && resize !== 1440) {\n // resize = 1440;\n // console.log(size, resize);\n // addGlassEffect();\n // }\n // if (size > 1440 && resize !== 1441) {\n // resize = 1441;\n // console.log(size, resize);\n // addGlassEffect();\n // }\n\n // addGlassEffect();\n});\n\nfunction addGlassEffect() {\n const glassList = document.querySelectorAll('.glass');\n let count = 10;\n const globalOffset = 0;\n const offset = 5;\n const compensation = {\n width: 0,\n };\n\n glassList.forEach(glass => {\n glass.innerHTML = '';\n if (innerWidth < 375) {\n // console.log('Less 375');\n glass.style.width = '90%';\n count = 6;\n }\n if (375 < innerWidth && innerWidth < 768) {\n let parent = glass.closest('.gradient');\n parent.classList.remove('gradient-red');\n parent.classList.add('gradient-red-tablet');\n glass.style.width = '75%';\n count = 6;\n // console.log('Less 768');\n }\n if (768 < innerWidth && innerWidth < 1440) {\n // console.log('Less 1440');\n }\n compensation.width = glass.clientWidth / count + offset;\n let markup = '';\n for (let i = 0; i < count; i++) {\n let elem = `
    `;\n markup += elem;\n }\n glass.insertAdjacentHTML('beforeend', markup);\n setTimeout(() => {\n glass.classList.add('active');\n }, 500);\n });\n}\naddGlassEffect();\n"],"names":["aboutMeInit","Accordion","swiper","Swiper","Mousewheel","Keyboard","Navigation","event","coverRefs","observerOptions","animateCards","entries","entry","card","observer","headerInit","burgerMenu","menuEl","mobMenu","closeBtn","dropdownMenu","hiddenMenu","orderBtn","bodyEl","toggleDropdownMenu","e","openModalMenu","closeModalMenu","header","projectsInit","reviewsInit","currentId","selectors","fetchReviews","id","response","axios","error","renderReviews","markup","_id","author","avatar_url","review","showNotification","msg","iziToast","workTogheterInit","formData","modal","closeModalBtn","form","emailInput","commentInput","successMessage","errorMessage","openModal","closeModal","errorMessage2","successMessage2","resize","size","addGlassEffect","glassList","count","offset","compensation","glass","parent","i","elem"],"mappings":"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"} \ No newline at end of file diff --git a/assets/main-d61e4fa3.js b/assets/main-d61e4fa3.js deleted file mode 100644 index 44b0666..0000000 --- a/assets/main-d61e4fa3.js +++ /dev/null @@ -1,10 +0,0 @@ -import{A as b,S as f,M as w,K as y,N as h,i as v,a as g}from"./vendor-2e4beb6d.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))a(e);new MutationObserver(e=>{for(const n of e)if(n.type==="childList")for(const o of n.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&a(o)}).observe(document,{childList:!0,subtree:!0});function c(e){const n={};return e.integrity&&(n.integrity=e.integrity),e.referrerPolicy&&(n.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?n.credentials="include":e.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function a(e){if(e.ep)return;e.ep=!0;const n=c(e);fetch(e.href,n)}})();function L(){new b(".about-me .accordion-container",{showMultiple:!0,openOnInit:[0]});var s=new f(".about-me .about-swiper",{modules:[w,y,h],slidesPerView:"auto",spaceBetween:0,loop:!0,updateOnWindowResize:!0,mousewheel:{enabled:!0,invert:!1},navigation:{nextEl:".about-me .about-swiper .next",preventClicks:!1},keyboard:{enabled:!0,onlyInViewport:!0},breakpoints:{1440:{mousewheel:{enabled:!1}}}});document.addEventListener("keydown",function(t){t.key==="Tab"&&(t.preventDefault(),t.shiftKey?s.slidePrev():s.slideNext())})}L();const p={marqueeCards:document.querySelectorAll(".marquee-card"),sectionCovers:document.querySelector("#covers")},E={root:null,rootMargin:"0px",threshold:0};function M(s){s.forEach(t=>{if(!t.isIntersecting){p.marqueeCards.forEach(c=>{c.classList.remove("animation")});return}p.marqueeCards.forEach(c=>{c.classList.add("animation")})})}let k=new IntersectionObserver(M,E);k.observe(p.sectionCovers);new b(".faq .accordion-container",{duration:600,showMultiple:!1});function S(){const s=document.querySelector(".burger-menu"),t=document.querySelector(".header-list-menu"),c=document.querySelector(".mobil-menu"),a=document.querySelector(".mobil-menu-close-btn"),e=document.querySelector(".header-dropdown-menu-content"),n=document.querySelector(".mobil-menu-nav-list"),o=document.querySelector(".mobil-menu-order-btn"),r=document.querySelector("body");function d(i){console.log(i.target),i.target!==i.currentTarget&&e.classList.toggle("d-none")}function u(i){console.log(i.target),c.classList.add("is-open"),r.classList.add("mob-menu-overflow")}function l(i){c.classList.remove("is-open"),r.classList.remove("mob-menu-overflow")}const m={hideMenu(){e.classList.add("d-none")},showMenu(){e.classList.remove("d-none")}};t.addEventListener("click",d),s.addEventListener("click",u),e.addEventListener("click",d),n.addEventListener("click",u),a.addEventListener("click",l),o.addEventListener("click",l),document.addEventListener("keydown",i=>{i.key=="Escape"&&(i.preventDefault(),l(),m.hideMenu())})}S();function q(){const s=new f(".projects .projects-swiper",{modules:[w,y],updateOnWindowResize:!0,spaceBetween:20,mousewheel:{invert:!1},keyboard:{enabled:!0,onlyInViewport:!0},navigation:{prevEl:".projects .projects-swiper .prev",nextEl:".projects .projects-swiper .next",preventClicks:!1}});document.addEventListener("keydown",function(t){t.key==="Tab"&&(t.preventDefault(),t.shiftKey?s.slidePrev():s.slideNext())})}q();function x(){const s=new f(".reviews-swiper",{modules:[y,w],updateOnWindowResize:!0,spaceBetween:20,height:302,keyboard:{enabled:!0,onlyInViewport:!0},mousewheel:{invert:!1},breakpoints:{768:{slidesPerView:2,spaceBetween:16},1440:{slidesPerView:4,spaceBetween:16}},navigation:{prevEl:".reviews-swiper .prev",nextEl:".reviews-swiper .next"}});document.addEventListener("keydown",function(o){o.key==="Tab"&&(o.preventDefault(),o.shiftKey?s.slidePrev():s.slideNext())});let t=1;const c={container:document.querySelector(".reviews-list"),btnPrev:document.querySelector(".reviews-swiper .prev"),btnNext:document.querySelector(".reviews-swiper .next")};async function a(o){try{const r=await g.get("https://portfolio-js.b.goit.study/api/reviews",{params:{id:o}});if(r.status!==200)throw new Error(r.status);return r.data}catch(r){throw new Error(`Fetching reviews failed: ${r.message}`)}}async function e(){try{const r=(await a(t)).map(({_id:d,author:u,avatar_url:l,review:m})=>` -
  • -
    - ${u} -

    ${u}

    -

    ${m}

    -
    -
  • - `).join("");c.container.insertAdjacentHTML("beforeend",r)}catch(o){c.container.insertAdjacentHTML("afterbegin",'

    Not found

    '),n(o.message)}}e();const n=o=>{v.settings({timeout:5e3,titleColor:"#fff",position:"center",messageColor:"#fff",icon:""}),v.error({message:o,timeout:5e3,position:"center",backgroundColor:"#EF4040"})}}x();function I(){const s=JSON.parse(localStorage.getItem("feedback-form-state"))??{email:"",comment:""},t=document.getElementById("modal");t.querySelector(".modal-content");const c=t.querySelector(".close-btn"),a=document.getElementById("contact-form"),e=a.email,n=a.comment,o=document.querySelector(".success-message"),r=document.querySelector(".error-message");e.value=s.email,n.value=s.comment;function d(){t.style.display="flex"}function u(){t.style.display="none"}c.addEventListener("click",u),t.addEventListener("click",function(i){i.target===t&&u()}),document.addEventListener("keydown",function(i){i.key==="Escape"&&u()}),a.addEventListener("input",i=>{s[i.target.name]=i.target.value.trim(),localStorage.setItem("feedback-form-state",JSON.stringify(s))}),a.addEventListener("submit",function(i){i.preventDefault(),g.post("https://portfolio-js.b.goit.study/api/requests",s).then(()=>{o.style.display="block",d()}).catch(()=>{r.style.display="block"}),localStorage.clear(),i.target.reset(),s.email="",s.comment=""});const l=e.nextElementSibling,m=l.nextElementSibling;l.style.display="none",m.style.display="none",e.addEventListener("blur",function(){e.value.trim()?e.validity.valid?(e.classList.add("input-valid"),e.classList.remove("input-error"),l.style.display="none",m.style.display="block"):(e.classList.add("input-error"),e.classList.remove("input-valid"),l.style.display="block",m.style.display="none"):(l.style.display="none",m.style.display="none",e.classList.remove("input-error"),e.classList.remove("input-valid"))})}I();(()=>{const s=document.querySelectorAll(".glass");let t=10;const c=5,a={width:0};let e=window.innerWidth;window.addEventListener("resize",()=>{e=window.innerWidth,document.querySelector(".mobil-menu").classList.contains("is-open")}),s.forEach(n=>{if(e<375&&(n.style.width="90%",t=6),375{n.classList.add("active")},500)})})(); -//# sourceMappingURL=main-d61e4fa3.js.map diff --git a/examples.html b/examples.html index b734844..8db8bcb 100644 --- a/examples.html +++ b/examples.html @@ -9,9 +9,9 @@ - + - + diff --git a/index.html b/index.html index 97ddd59..b8613af 100644 --- a/index.html +++ b/index.html @@ -8,8 +8,8 @@ - - + +