@font-face {
    font-family: 'Inter';
    src: local('Inter ExtraLight'), local('Inter-ExtraLight'), url('../fonts/Inter-ExtraLightBETA.woff2') format('woff2');
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: local('Inter Light'), local('Inter-Light'), url('../fonts/Inter-LightBETA.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: local('Inter Regular'), local('Inter-Regular'), url('../fonts/Inter-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: local('Inter Bold'), local('Inter-Bold'), url('../fonts/Inter-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Asket Condensed';
    src: url('../fonts/AsketCondensed-ExtraBold.ttf') format('truetype');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}
:root {
    --body: #FFF;
    --text-dark: #202027;
    --text-black: #000;
    --main: #FF2E2E;
    --card: #192234;
    --font-body: 'Inter', sans-serif;
    --sb-size: 12px;
    --sb-thumb-color: var(--main);
    --sb-track-color: var(--body);
    --anim-duration: 3s;
    --easing: cubic-bezier(0.25, 1, 0.5, 1);
}

* {
    scrollbar-color: var(--sb-thumb-color) var(--sb-track-color);
    scrollbar-width: thin;
    font-family: var(--font-body);
    box-sizing: border-box;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    margin: 0;
    padding: 0;
}

html::-webkit-scrollbar {
    width: var(--sb-size);
    height: var(--sb-size);
}

html::-webkit-scrollbar-track {
    background: var(--sb-track-color);
    border-radius: 10px;
}

html::-webkit-scrollbar-thumb {
    background: var(--sb-thumb-color);
    border-radius: 10px;
    border: 3px solid var(--sb-track-color);
}

html::-webkit-scrollbar-thumb:hover {
    background: var(--card);
}

body {
    background-color: var(--body);
    color: var(--text-dark);
    font-weight: 400;
    font-family: var(--font-body);
    cursor: none;
}

body, html, a, button, input, textarea, .interactive {
    cursor: none !important;
}

body.scroll-locked {
    overflow: hidden !important;
    height: 100vh;
}

.cursor-core,
.cursor-glow {
    position: fixed;
    top: 0;
    left: 0;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 2147483647;
    will-change: transform, opacity;
}

.cursor-core {
    width: 8px;
    height: 8px;
    background-color: var(--main);
    opacity: 1;
    transition: transform 0.3s ease, opacity 0.3s ease;
    box-shadow: 0 0 5px var(--main);
}

.cursor-glow {
    width: 40px;
    height: 40px;
    background-color: var(--main);
    opacity: 0.3;
    filter: blur(8px);
    transition: opacity 0.3s ease, transform 0.3s ease;
    z-index: 2147483646;
}

body.hovering .cursor-core {
    transform: translate(-50%, -50%) scale(5);
    opacity: 0.5;
}

body.hovering .cursor-glow {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.5);
}

video {
    cursor: auto !important;
}

@media (hover: none) and (pointer: coarse) {
    .cursor-core, .cursor-glow { display: none; }
    body, html, a, button { cursor: auto !important; }
}

html.lenis, html.lenis body {
    height: auto;
}

.lenis.lenis-smooth {
    scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}

.lenis.lenis-stopped {
    overflow: hidden;
}

.lenis.lenis-scrolling iframe {
    pointer-events: none;
}
#preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--body);
    z-index: 9999; 
    display: flex;
    justify-content: center;
    align-items: center;
    transition: opacity 0.8s ease-out, visibility 0.8s ease-out;
}

#preloader.hide-preloader {
    opacity: 0;
    visibility: hidden;
    pointer-events: none; 
}

.preloader-wrapper {
    perspective: 1000px;
}

.logo-svg {
    overflow: visible;
}

.logo-letter {
    opacity: 0;
    transform-origin: center center;
    transform-box: fill-box;
    will-change: transform, opacity, filter;
    animation: cinematicFocus var(--anim-duration) var(--easing) infinite;
}

@keyframes cinematicFocus {
    0% { opacity: 0; filter: blur(10px); transform: scale(0.8) translateY(10px); }
    30% { opacity: 1; filter: blur(0px); transform: scale(1) translateY(0); }
    70% { opacity: 1; filter: blur(0px); transform: scale(1) translateY(0); }
    100% { opacity: 0; filter: blur(5px); transform: scale(1.1) translateY(-5px); }
}

.l-1 { animation-delay: 0.0s; }
.l-2 { animation-delay: 0.1s; }
.l-3 { animation-delay: 0.2s; }
.l-4 { animation-delay: 0.3s; }
.l-5 { animation-delay: 0.4s; }
.l-6 { animation-delay: 0.5s; }
.l-7 { animation-delay: 0.6s; }
.l-8 { animation-delay: 0.7s; }


.header {
    display: flex;
    width: 100%;
    height: 90px;
    align-items: flex-start;
    justify-content: flex-end;
    padding: 15px 21px;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    background: transparent;
    pointer-events: none;
    transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.4s ease;
    will-change: height, background-color;
}

.header.scrolled {
    height: 60px;
    background-color: rgb(255 255 255);
    pointer-events: auto;
}

.header-logo-burger {
    display: flex;
    align-items: center;
    gap: 20px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 60;
    pointer-events: auto;
}

/* Place right menu to the right side of header on desktop and vertically center it */
.right-menu {
    position: absolute;
    right: 21px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 60;
    pointer-events: auto;
}

.logo-header {
    display: block;
    height: 57.25px;
    width: auto;
    transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: height;
}

.header.scrolled .logo-header {
    height: 45px;
}

.header.scrolled .menu-center-header {
    padding-left: 150px;
}

.menu-center-header,
.right-menu {
    position: relative;
    z-index: 10;
    pointer-events: auto;
}

.menu-center-header {
    display: flex;
    gap: 40px;
    flex-direction: row;
    padding-left: 75px;
    transition: padding-left 0.4s;
}

a.menu-center {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    text-decoration: none;
}

.kvadrat {
    width: 10px;
    height: 10px;
    flex-shrink: 0;
    background: var(--main);
}

.krug {
    width: 10px;
    height: 10px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--text-dark);
}
.socials .krug {
    background: #fff;
}

a.menu-center span {
    color: var(--text-dark);
    text-align: center;
    font-family: Inter;
    font-size: 14px;
    font-weight: 400;
    line-height: 20px;
}

.menu-trigger {
    width: 22px;
    height: 10px;
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.menu-trigger span {
    display: block;
    width: 100%;
    height: 1px;
    background-color: var(--text-dark);
    transition: transform 0.4s cubic-bezier(0.68, -0.6, 0.32, 1.6), background-color 0.3s ease;
}

.menu-trigger:hover span {
    background-color: var(--text-dark);
}

.menu-trigger.is-active span:first-child {
    transform: translateY(4.5px) rotate(45deg);
}

.menu-trigger.is-active span:last-child {
    transform: translateY(-4.5px) rotate(-45deg);
}

.ul-menu-right {
    list-style: none;
    display: flex;
    padding: 0 21px 0 13px;
    align-items: flex-start;
    gap: 26px;
    margin: 0;
}

.ul-menu-right li a {
    text-decoration: none;
    color: var(--text-dark);
    font-family: Inter;
    font-size: 16px;
    font-weight: 400;
    line-height: 20px;
    position: relative;
    transition: color 0.3s ease;
}

.ul-menu-right li a::after {
    content: '';
    position: absolute;
    width: 0;
    height: 1px;
    bottom: -2px;
    left: 0;
    background-color: var(--main);
    transition: width 0.3s ease;
}

/* Стиль активної сторінки */
.ul-menu-right li a.active {
    color: var(--main);
}

.ul-menu-right li a.active::after {
    width: 100%;
}

.ul-menu-right:hover li a.active {
    color: var(--text-dark);
}

.ul-menu-right:hover li a.active::after {
    width: 0;
}

.ul-menu-right li a:hover,
.ul-menu-right:hover li a.active:hover {
    color: var(--main);
}

.ul-menu-right li a:hover::after,
.ul-menu-right:hover li a.active:hover::after {
    width: 100%;
}

.fullscreen-menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100svh;
    background-color: #FF2E2E87;
    z-index: 50;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 45px 21px 20px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.5s ease;
    will-change: opacity, visibility;
    box-sizing: border-box;
    overflow: hidden;
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}

.fullscreen-menu.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: all;
}

.menu-main-content {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    width: 100%;
    height: 100%;
    position: relative;
}

.big-nav {
    display: flex;
    flex-direction: column;
    gap: 10px;
    position: relative;
    z-index: 10;
    width: 40%;
    padding-top: 40px;
}

.big-link {
    font-size: 44px;
    line-height: 0.9;
    font-weight: 700;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--text-black);
    display: inline-block;
    width: fit-content;
    cursor: pointer;
    opacity: 0;
    transform: translateY(40px) translateZ(0);
    transition: color 0.3s ease, transform 0.3s ease, opacity 0.5s ease;
    will-change: transform, opacity;
    backface-visibility: hidden;
}

.big-link:hover {
    transform: translateX(15px) translateZ(0) !important;
    color: #fff;
}

.big-link.active {
    color: #fff;
}

.menu-images-container {
    position: absolute;
    top: 0;
    right: 0;
    width: 60%;
    height: 100%;
    pointer-events: none;
    z-index: 1;
}

.menu-image-wrapper {
    position: absolute;
    opacity: 0;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.9) translateZ(0);
    width: 300px;
    aspect-ratio: 3 / 4;
    height: auto;
    overflow: hidden;
    box-shadow: 0 15px 35px rgba(0,0,0,0.15);
    will-change: transform, opacity;
    backface-visibility: hidden;
    perspective: 1000px;
    transition: opacity 0.4s ease, top 0.6s cubic-bezier(0.25, 1, 0.5, 1), left 0.6s cubic-bezier(0.25, 1, 0.5, 1), transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.menu-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    will-change: transform;
    transform: translateZ(0);
}

.menu-images-container.is-active .menu-image-wrapper {
    opacity: 1;
}

.menu-image-wrapper.img-1 {
    width: 320px;
    z-index: 3;
}

.menu-image-wrapper.img-2 {
    width: 280px;
    z-index: 2;
}

.menu-footer {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    width: 100%;
    border-top: 1px solid rgba(0,0,0,0.1);
    padding-top: 20px;
    z-index: 10;
    position: relative;
}

.copyright {
    color: #fff;
    font-family: Inter;
    font-size: 14px;
    font-weight: 400;
}

.socials {
    display: flex;
    gap: 20px;
}

.social-link {
    color: #fff;
    font-family: Inter;
    font-size: 14px;
    font-weight: 400;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 8px;
}

.mobile-extra-nav {
    display: none;
}

@media (max-width: 900px) {
    .menu-center-header {
        padding-left: 10px;
    }
}

@media (max-width: 768px) {
    .cursor-core {
        display: none !important;
    }
    .cursor-glow {
        display: none !important;
    }
    .header {
        flex-direction: column;
        align-items: flex-start;
        padding: 10px 14px;
        height: auto;
        pointer-events: none;
    }
    .menu-center-header {
        padding-left: 0px;
    }
    .header.scrolled .menu-center-header {
        padding-left: 0px;
    }
    .header.scrolled {
        height: auto;
        background-color: rgba(255, 255, 255);
    }
    .header-logo-burger {
        width: 100%;
        justify-content: flex-start;
        pointer-events: auto;
        position: relative;
        left: auto;
        top: auto;
        transform: none;
    }
    .right-menu {
        display: none;
    }
    .fullscreen-menu {
        padding: 100px 14px 20px;
        justify-content: flex-start;
        overflow-y: auto;
        pointer-events: auto;
    }
    .menu-main-content {
        flex-direction: column;
        justify-content: flex-start;
        flex-grow: 0;
    }
    .big-nav {
        width: 100%;
        padding-top: 0;
        margin-bottom: 40px;
    }
    .big-link {
        font-size: 35px;
    }
    .menu-images-container {
        display: none;
    }
    .mobile-extra-nav {
        display: flex;
        flex-direction: column;
        margin-bottom: 40px;
    }
    .mobile-extra-nav a {
        font-size: 24px;
        color: var(--text-dark);
        text-decoration: none;
        margin-bottom: 15px;
        font-weight: 400;
    }
    .menu-footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
        margin-top: auto;
    }
    .socials {
        width: 100%;
        gap: 30px;
    }
}


.logo-header,
.menu-trigger span,
a.menu-center span,
.ul-menu-right li a,
.ul-menu-right li a::after {
    transition: all 0.4s ease;
}

.header.header-inverse:not(.scrolled) a.menu-center { 
    opacity: 0;
    pointer-events: none;
}

.header.header-inverse:not(.scrolled) .ul-menu-right li a {
    opacity: 0;
    pointer-events: none;
}

.header.header-inverse:not(.scrolled) .ul-menu-right li a::after {
   opacity: 0;
}

.header.header-inverse:not(.scrolled) .logo-header,
.header.header-inverse:not(.scrolled) .menu-trigger { 
    opacity: 0;
    pointer-events: none;
}

.header.header-inverse:not(.scrolled) a:has(.logo-header) {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}

.fullscreen-menu.is-open .big-link {
    opacity: 1;
    transform: translateY(0) translateZ(0);
}

.fullscreen-menu.is-open .big-link:nth-child(1) { transition-delay: 0.1s; }
.fullscreen-menu.is-open .big-link:nth-child(2) { transition-delay: 0.15s; }
.fullscreen-menu.is-open .big-link:nth-child(3) { transition-delay: 0.2s; }
.fullscreen-menu.is-open .big-link:nth-child(4) { transition-delay: 0.25s; }
.fullscreen-menu.is-open .big-link:nth-child(5) { transition-delay: 0.3s; }
.fullscreen-menu.is-open .big-link:nth-child(6) { transition-delay: 0.35s; }
.fullscreen-menu.is-open .big-link:nth-child(7) { transition-delay: 0.4s; }
@media (max-width: 768px) {
    .big-link {
        font-size: 35px;
    }
}



.footer {
    display: flex;
    flex-direction: column;
    width: 100%;
    justify-content: space-between;
    padding: 0 21px;
    padding-top: 100px;
    padding-bottom: 50px;
}

.top-footer {
    display: flex;
    justify-content: space-between;
    padding-bottom: 45px;
    align-items: flex-start;
}

.info-footer {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-end;
    gap: 24px;
}

.bottom-footer {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
    width: 100%;
}

.social-container {
    display: flex;
    flex-direction: row;
    gap: 30px;
}

.copyright-footer {
    display: flex;
    flex-direction: row;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94), 
                transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    will-change: transform, opacity;
}

.copyright-footer p {
    color: #202027;
    font-family: Inter, sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 20px;
    margin: 0;
}

img.logo-footer {
    max-width: 286.382px;
    width: 100%;
    height: auto;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94), 
                transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    will-change: transform, opacity;
}

a.title-footer {
    display: inline-block;
    color: #202027;
    font-family: Inter, sans-serif;
    font-size: 32px;
    font-style: normal;
    font-weight: 400;
    line-height: 100%;
    text-decoration: none;
    position: relative;
    opacity: 0;
    transform: translateY(30px);
    will-change: transform, opacity;
    transition: color 0.3s ease,
                opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94), 
                transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

a.social-footer {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    position: relative;
    opacity: 0;
    transform: translateY(30px);
    will-change: transform, opacity;
    transition: color 0.3s ease,
                opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94), 
                transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.krug-orange {
    width: 10px;
    height: 10px;
    flex-shrink: 0;
    border-radius: 5px;
    background: var(--main);
}

a.social-footer span {
    color: #202027;
    font-family: Inter, sans-serif;
    font-size: 13.6px;
    font-style: normal;
    font-weight: 400;
    line-height: 20px;
}

a.title-footer::after,
a.social-footer::after {
    content: '';
    position: absolute;
    width: 0;
    height: 1px;
    bottom: -4px;
    left: 0;
    background-color: var(--main);
    transition: width 0.3s ease;
}

a.title-footer:hover::after,
a.social-footer:hover::after {
    width: 100%;
}

a.title-footer:hover,
a.social-footer:hover span {
    color: var(--main);
}

.footer.is-active .logo-footer,
.footer.is-active .title-footer,
.footer.is-active .copyright-footer,
.footer.is-active .social-footer {
    opacity: 1;
    transform: translateY(0);
}

.footer.is-active .logo-footer { 
    transition-delay: 0.1s; 
}

.footer.is-active .title-footer:nth-of-type(1) { 
    transition-delay: 0s, 0.2s, 0.2s; 
}
.footer.is-active .title-footer:nth-of-type(2) { 
    transition-delay: 0s, 0.3s, 0.3s; 
}

.footer.is-active .copyright-footer { 
    transition-delay: 0.4s; 
}

.footer.is-active .social-footer:nth-of-type(1) { 
    transition-delay: 0s, 0.5s, 0.5s; 
}
.footer.is-active .social-footer:nth-of-type(2) { 
    transition-delay: 0s, 0.6s, 0.6s; 
}
.footer.is-active .social-footer:nth-of-type(3) { 
    transition-delay: 0s, 0.7s, 0.7s; 
}

@media (max-width: 768px) {
    .footer {
        padding-top: 60px;
        padding-left: 14px;
        padding-right: 14px;
    }

    .top-footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 100px;
        padding-bottom: 60px;
    }

    .info-footer {
        align-items: flex-start;
        width: 100%;
    }
    
    a.social-footer span {
        font-size: 16px;
    }
    
    a.title-footer {
        font-size: 24px;
        text-align: center;
    }
    
    .bottom-footer {
        flex-direction: column-reverse;
        gap: 30px;
        align-items: flex-start;
    }

    .copyright-footer p {
        text-align: left;
        font-size: 14px;
    }

    .social-container {
        flex-wrap: wrap;
        justify-content: space-between;
        width: 100%;
    }
}

.info-section {
    max-width: 700px;
    margin: auto;
    padding: 0 20px;
    text-align: left;
    color: var(--text-dark);
    margin-top: 180px; 
}

.title-information {
    color: var(--main);
    font-family: 'Inter', sans-serif;
    font-size: 18px;
    font-weight: 300;
    line-height: 100%;
    padding-bottom: 40px;
    margin: 0;
}

.bottom-title-information {
    color: var(--text-dark);
    font-family: 'Inter', sans-serif;
    font-size: 22px;
    font-weight: 400;
    line-height: 140%;
    margin-bottom: 40px;
    margin-top: 0;
    text-indent: 60%;
    display: block;
}

.svg-bottom-pluse {
    display: inline-block;
    transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); 
    -webkit-tap-highlight-color: transparent;
    will-change: transform;
}

.pluse-conteiner.active .svg-bottom-pluse {
    transform: rotate(45deg);
}

.pluse-information {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.5s ease-in-out;
}

.pluse-conteiner.active .pluse-information {
    opacity: 1;
}

.pluse-information-inner {
    padding-top: 30px;
    font-size: 18px;
    line-height: 1.6;
    color: var(--text-dark);
    font-weight: 400;
    text-indent: 35%;
}

@media (max-width: 1024px) {
    .info-section {
        margin-top: 150px;
        max-width: 100%;
    }
}

@media (max-width: 768px) {
    .info-section {
        margin-top: 100px; 
        padding: 0 14px;
    }

    .title-information {
        font-size: 16px;
        padding-bottom: 20px;
    }

    .bottom-title-information {
        font-size: 18px;
        margin-bottom: 30px;
        text-indent: 10%;
        display: block;
    }

    .pluse-information-inner {
        font-size: 16px;
        padding-top: 20px;
        text-indent: 10%;
    }
    
    .svg-bottom-pluse svg {
        width: 50px;
        height: 50px;
    }
}

.title-information,
.bottom-title-information,
.svg-bottom-pluse {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94), 
                transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    will-change: transform, opacity;
}

.svg-bottom-pluse {
    transform: scale(0.5) rotate(-90deg); 
    display: inline-block;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.8s ease;
}

.info-section.is-visible .title-information,
.info-section.is-visible .bottom-title-information {
    opacity: 1;
    transform: translateY(0);
}

.info-section.is-visible .svg-bottom-pluse {
    opacity: 1;
    transform: scale(1) rotate(0deg); 
}

.info-section.is-visible .title-information { transition-delay: 0.1s; }
.info-section.is-visible .bottom-title-information { transition-delay: 0.2s; }
.info-section.is-visible .svg-bottom-pluse { transition-delay: 0.4s; }

.pluse-conteiner.active .svg-bottom-pluse {
    transform: scale(1) rotate(45deg) !important; 
    transition-delay: 0s !important;
    transition-duration: 0.3s;
}

.svg-bottom-pluse:hover {
    opacity: 0.7;
}

.two-grid-section {
    padding-top: 76px;
    width: 100%;
    padding-left: 21px;
    padding-right: 21px;
}

img.two-grid-images,
video.two-grid-images {
    width: 100%;
}

.two-grid-card {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    align-items: end; 
}

.two-cards {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 100%;
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 1s ease-out, transform 1s cubic-bezier(0.25, 1, 0.5, 1);
    will-change: opacity, transform;
}

.two-cards.visible {
    opacity: 1;
    transform: translateY(0);
}

.two-grid-images {
    cursor: none !important;
    width: 100%;
    display: block;
    object-fit: cover;
    box-sizing: border-box;

    padding: 10px; 
    
    background-image: 
        linear-gradient(#FF2E2E, #FF2E2E), 
        linear-gradient(#FF2E2E, #FF2E2E), 
        linear-gradient(#FF2E2E, #FF2E2E), 
        linear-gradient(#FF2E2E, #FF2E2E); 
    
    background-repeat: no-repeat;
    
    background-position: 
        left bottom,  
        right bottom,  
        left top,      
        left bottom;   
    background-size: 
        1px 0%,   
        1px 0%,  
        0% 1px,  
        0% 1px;  

    transition: background-size 0.8s cubic-bezier(0.25, 1, 0.5, 1), transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);
    will-change: background-size, transform;
}

.two-cards:hover .two-grid-images {
    background-size: 
        1px 100%,   
        1px 100%,  
        100% 1px,   
        100% 1px;   
    transform: scale(0.96);
}

.two-cards:first-child .two-grid-images {
    height: auto;
}

.two-cards:last-child .two-grid-images {
    height: 100%;
}

@media (max-width: 768px) {
    .two-grid-section {
      padding-top: 40px;
      padding-left: 14px;
      padding-right: 14px;
    }
    .two-grid-card {
        grid-template-columns: 1fr;
    }
    
    .two-cards:first-child .two-grid-images {
        height: auto;
    }
}

.two-grid-titles {
    display: flex;
    padding-top: 10px;
    justify-content: space-between;
    align-items: center;
    align-self: stretch;
    background: #fff;
    position: relative;
    z-index: 2;
    
    transition: padding 0.8s cubic-bezier(0.25, 1, 0.5, 1);
    will-change: padding;
}

.two-cards:hover .two-grid-titles {
    padding-left: 10px;
    padding-right: 10px;
}

.grid-titles {
    color: #202027;
    font-family: Inter;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 20px;
    white-space: nowrap;
}

.poloska {
    height: 1px;
    background: #FF2E2E;
    margin: 0 20px;
    width: calc(100% - 40px);
    
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.6s ease;
    will-change: transform;
}

.two-cards:hover .poloska,
.column-cards:hover .poloska {
    transform: scaleX(1);
}

.colum-grid-section {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    width: 100%;
    box-sizing: border-box;
    padding-left: 21px;
    padding-right: 21px;
    padding-top: 31px;
}

.column-one,
.column-two,
.column-three {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.column-cards {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    overflow: hidden; 
    position: relative;
    border-radius: 0px;
    mask-image: -webkit-radial-gradient(white, black); 
    
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 1s ease-out, transform 1s cubic-bezier(0.25, 1, 0.5, 1);
    will-change: opacity, transform;
}

.column-cards.visible {
    opacity: 1;
    transform: translateY(0);
}

.column-grid-images {
    cursor: none !important;
    width: 100%;
    height: auto; 
    display: block;
    object-fit: cover; 
    
    box-sizing: border-box;
    
    padding: 10px; 
    
    background-image: 
        linear-gradient(#FF2E2E, #FF2E2E), 
        linear-gradient(#FF2E2E, #FF2E2E), 
        linear-gradient(#FF2E2E, #FF2E2E), 
        linear-gradient(#FF2E2E, #FF2E2E);
    
    background-repeat: no-repeat;
    background-position: left bottom, right bottom, left top, left bottom;
    
    background-size: 1px 0%, 1px 0%, 0% 1px, 0% 1px;

    transition: background-size 0.8s cubic-bezier(0.25, 1, 0.5, 1), transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);
    will-change: transform, background-size;
    backface-visibility: hidden; 
}

.column-cards:hover .column-grid-images {
    background-size: 1px 100%, 1px 100%, 100% 1px, 100% 1px;
    transform: scale(0.96);
}

.column-grid-titles {
    display: flex;
    padding-top: 10px;
    justify-content: space-between;
    align-items: center;
    align-self: stretch;
    position: relative;
    z-index: 2;
    background: #fff; 
    
    transition: padding 0.8s cubic-bezier(0.25, 1, 0.5, 1);
    will-change: padding;
}

.column-cards:hover .column-grid-titles {
    padding-left: 10px;
    padding-right: 10px;
}

@media screen and (max-width: 768px) {
    .colum-grid-section {
        display: block; 
        column-count: 2; 
        column-gap: 8px;
        padding-left: 14px;
        padding-right: 14px;
    }

    .column-one,
    .column-two,
    .column-three {
        display: contents; 
    }

    .column-cards {
        display: inline-block; 
        width: 100%;
        margin-bottom: 8px; 
        break-inside: avoid; 
        
        overflow: hidden; 
        transform: translateZ(0); 
        vertical-align: top;
    }

    .column-grid-titles {
        display: none;
    }
}

.about-section-biography,
.about-section-awards {
    display: flex;
    gap: 32px;
    padding: 80px 21px 21px;
    width: 100%;
    align-items: center;
    box-sizing: border-box;
}


.about-section-awards {
    background: var(--card);
    padding: 21px 21px;
}

.about-biography-img,
.about-awards-img {
    flex: 1;
    width: 50%;
    height: 90vh;
    overflow: hidden; 
    position: relative;
    opacity: 0;
    transform: translateY(40px) translateZ(0); 
    transition: opacity 1s cubic-bezier(0.22, 1, 0.36, 1), transform 1s cubic-bezier(0.22, 1, 0.36, 1);
    backface-visibility: hidden;
}

.about-biography-content,
.about-awards-content {
    flex: 1;
    width: 50%;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

img.biography-img,
img.awards-img {
    width: 100%;
    height: 115%; 
    object-fit: cover;
    display: block;
    will-change: transform;
    transform: translate3d(0, 0, 0); 
    backface-visibility: hidden;
}

img.biography-img {
    object-position: top center;
}

h3.title-biography,
h3.title-awards {
    color: var(--main);
    font-size: 16px;
    font-weight: 400;
    line-height: 20px;
    
    opacity: 0;
    transform: translateY(30px) translateZ(0);
    transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.about-biography-content p,
.about-awards-content li {
    color: var(--text-black);
    font-size: 16px;
    font-weight: 400;
    line-height: 20px;
    
    opacity: 0;
    transform: translateY(30px) translateZ(0);
    transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.about-awards-content ul {
    padding-left: 20px;
    margin: 0;
}

.about-awards-content li {
    font-family: Inter;
    font-weight: 700;
    line-height: 180%;
    color: var(--body);
}

.about-section-biography.is-visible .about-biography-img,
.about-section-awards.is-visible .about-awards-img {
    opacity: 1;
    transform: translateY(0) translateZ(0);
}

.about-section-biography.is-visible h3.title-biography,
.about-section-awards.is-visible h3.title-awards {
    opacity: 1;
    transform: translateY(0) translateZ(0);
    transition-delay: 0.2s;
}

.about-section-biography.is-visible .about-biography-content p,
.about-section-awards.is-visible .about-awards-content li {
    opacity: 1;
    transform: translateY(0) translateZ(0);
}

.about-section-biography.is-visible .about-biography-content p:nth-of-type(1) { transition-delay: 0.3s; }
.about-section-biography.is-visible .about-biography-content p:nth-of-type(2) { transition-delay: 0.4s; }
.about-section-biography.is-visible .about-biography-content p:nth-of-type(3) { transition-delay: 0.5s; }
.about-section-biography.is-visible .about-biography-content p:nth-of-type(4) { transition-delay: 0.6s; }

.about-section-awards.is-visible .about-awards-content li:nth-child(1) { transition-delay: 0.30s; }
.about-section-awards.is-visible .about-awards-content li:nth-child(2) { transition-delay: 0.35s; }
.about-section-awards.is-visible .about-awards-content li:nth-child(3) { transition-delay: 0.40s; }
.about-section-awards.is-visible .about-awards-content li:nth-child(4) { transition-delay: 0.45s; }
.about-section-awards.is-visible .about-awards-content li:nth-child(5) { transition-delay: 0.50s; }
.about-section-awards.is-visible .about-awards-content li:nth-child(6) { transition-delay: 0.55s; }
.about-section-awards.is-visible .about-awards-content li:nth-child(7) { transition-delay: 0.60s; }
.about-section-awards.is-visible .about-awards-content li:nth-child(8) { transition-delay: 0.65s; }

@media (max-width: 768px) {
    .about-section-biography {
        flex-direction: column;
        padding: 80px 14px 21px;
    }
    
    .about-section-awards {
        flex-direction: column;
        padding: 21px 14px 21px;
    }

    .about-biography-img,
    .about-biography-content,
    .about-awards-content,
    .about-awards-img {
        width: 100%;
        flex: none;
    }

    .about-biography-img,
    .about-awards-img {
        height: 50vh;
    }
}



.about-section-clients {
    display: flex;
    flex-direction: row-reverse;
    gap: 32px;
    padding: 21px 21px 21px;
    width: 100%;
    align-items: center; 
    box-sizing: border-box;
    opacity: 0;
    transform: translateY(80px) translateZ(0);
    transition: opacity 1.2s cubic-bezier(0.22, 1, 0.36, 1), transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
}

.about-section-clients.is-visible {
    opacity: 1;
    transform: translateY(0) translateZ(0);
}

.about-clients-content {
    flex: 1;
    width: 50%;
}

.about-clients-img {
    flex: 1;
    width: 50%;
    height: 90vh;
    min-height: 90vh;
    overflow: hidden;
    position: relative;
    transform: translateZ(0);
}

img.clients-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    opacity: 1;
    filter: blur(0px); 
    transform: scale(1) translateZ(0); 
    transition: opacity 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), 
                filter 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), 
                transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    will-change: opacity, filter, transform;
}

img.clients-img.is-hidden {
    opacity: 0.6; 
    filter: blur(15px);
    transform: scale(1.08) translateZ(0); 
}
video.clients-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    opacity: 1;
    filter: blur(0px); 
    transform: scale(1) translateZ(0); 
    transition: opacity 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), 
                filter 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), 
                transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    will-change: opacity, filter, transform;
}

video.clients-img.is-hidden {
    opacity: 0.6; 
    filter: blur(15px);
    transform: scale(1.08) translateZ(0); 
}
h3.title-clients {
    color: var(--main);
    font-size: 16px;
    font-weight: 400;
    line-height: 20px;
    margin-bottom: 20px;
    display: block; 
}

.about-clients-content p {
    display: inline; 
    color: var(--text-black);
    font-family: 'Inter', sans-serif;
    font-size: 24px;
    font-style: normal;
    font-weight: 700;
    line-height: 150%;
    margin-right: 8px; 
    transition: color 0.3s ease;
}

.about-clients-content p:hover,
.about-clients-content p.active {
    color: var(--main);
}
.about-clients-content p:not([data-image]) {
    cursor: default;
    pointer-events: none;
}
@media (max-width: 768px) {
    .about-section-clients {
        flex-direction: column;
        padding: 100px 14px 21px;
    }

    .about-clients-content,
    .about-clients-img {
        width: 100%;
        flex: none;
    }
    
    .about-clients-img {
        height: 50vh;
    }
    .about-clients-content p {
        font-size: 18px;
    }
}






.section-journal-page {
    padding: 80px 24px 40px;
    width: 100%;
    margin: 0 auto;
}

h1.journal-main-title {
    font-family: 'Inter', sans-serif;
    font-size: clamp(48px, 8vw, 140px);
    font-weight: 700;
    line-height: 0.9;
    text-transform: uppercase;
    color: var(--text-dark);
    margin: 20px 0 40px 0;
    text-align: center;
}

.journal-masonry {
    column-count: 3;
    column-gap: 30px; 
    width: 100%;
}

.cards-journal {
    display: inline-block; 
    width: 100%;
    text-decoration: none;
    margin-bottom: 40px; 
    break-inside: avoid; 
    -webkit-column-break-inside: avoid;
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s ease, transform 0.8s ease;
    position: relative;
}

.cards-journal.visible {
    opacity: 1;
    transform: translateY(0);
}

.img-wrapper {
    width: 100%;
    height: auto;
    overflow: hidden;
    position: relative;
    background: #f0f0f0;
    margin-bottom: 16px; 
}

.journal-images {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.cards-journal:hover .journal-images {
    transform: scale(1.05);
}

.journal-content {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.journal-title {
    position: relative;
    display: flex;
    align-items: center;
    width: max-content;
}


.journal-title span {
    color: var(--text-black);
    font-family: 'Inter', sans-serif;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.2;
    text-transform: uppercase;
    transition: color 0.3s ease;
}

.journal-desc {
    color: var(--text-dark);
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    margin: 0;
}

.journal-title::after {
    content: '';
    position: absolute;
    width: 0;
    height: 1px;
    bottom: -2px;
    left: 0;
    background-color: var(--main, #000);
    transition: width 0.3s ease;
}

.cards-journal:hover .journal-title::after {
    width: 100%;
}

.cards-journal:hover .journal-title span {
    color: var(--main, #555);
}

.journal-header-wrapper {
    display: flex;
    justify-content: flex-start;
    margin-bottom: 40px;
}

@media (max-width: 1024px) {
    .journal-masonry {
        column-count: 2;
        column-gap: 20px;
    }
}

@media (max-width: 768px) {
    .section-journal-page {
        padding: 60px 16px 20px;
    }

    .journal-masonry {
        column-count: 1;
        column-gap: 0;
    }

    .journal-main-title {
        font-size: 48px;
        margin-bottom: 20px;
    }
    
    .cards-journal {
        margin-bottom: 30px;
    }
}










.single-journal-section {
    width: 100%;
    padding: 120px 21px 60px;
    box-sizing: border-box;
}

.hader-journal-single {
    margin-bottom: 30px;
    border-bottom: 1px solid rgba(32, 32, 39, 0.1);
    padding-bottom: 30px;
}

.single-title-journal {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 40px;
    margin: 0 auto;
}

.title-left-journal {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.journal-category {
    font-size: 14px;
    text-transform: uppercase;
    color: var(--main);
    font-weight: 500;
}

h1.journal-titles {
    font-size: 60px;
    font-weight: 700;
    line-height: 0.9;
    color: var(--text-dark);
    margin: 0;
    letter-spacing: -1px;
}

.description-journal-wrapper {
    max-width: 700px;
}

.description-journal {
    font-size: 18px;
    line-height: 1.5;
    color: var(--text-dark);
    font-weight: 300;
}

.journal-gallery {
    column-count: 5;
    column-gap: 20px;
    width: 100%;
    margin-bottom: 20px;
}

.gallery-item {
    display: block;
    width: 100%;
    position: relative;
    height: auto;
    break-inside: avoid;
    margin-bottom: 20px;
}

.gallery-item img {
    width: 100%;
    height: auto;
    display: block;
}

.mixed-media-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    width: 100%;
    margin-bottom: 40px;
}

.mixed-media-grid:has(> :nth-child(2)) {
    grid-template-columns: 1fr 1fr;
}

.mixed-media-grid:has(> :nth-child(2)) .media-item {
    height: auto;
    aspect-ratio: 16 / 9;
}
h3.grid-titles {
    text-transform: uppercase;
}
.media-item {
    width: 100%;
    display: block;
    position: relative;
}

.media-item video,
.media-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.single-content-journal {
    display: flex;
    justify-content: space-between;
    gap: 60px;
    padding-top: 30px;
    border-top: 1px solid rgba(32, 32, 39, 0.1);
    margin: 0 auto;
    flex-direction: column;
    align-items: center;
}

.single-content-journal a {
    text-decoration: none;
    color: inherit;
    position: relative;
    transition: color 0.3s ease;
    cursor: pointer;
}

.single-content-journal a::after {
    content: '';
    position: absolute;
    width: 0;
    height: 1px;
    bottom: -1px; 
    left: 0;
    background-color: var(--main);
    transition: width 0.3s ease;
}

.single-content-journal a:hover::after {
    width: 100%;
}

.single-content-journal a:hover {
    color: var(--main);
}

.text-block {
    width: 60%;
    font-size: 18px;
    line-height: 1.6;
}

.text-block p {
    margin-bottom: 20px;
}

.ul-content-journal {
    width: 60%;
    list-style: none;
    padding: 0;
}

.ul-content-journal li {
    font-size: 16px;
    padding: 15px 0;
    border-bottom: 1px solid rgba(32, 32, 39, 0.1);
    display: flex;
    justify-content: space-between;
}

.ul-content-journal li span {
    color: #888;
    font-weight: 300;
}



.hader-journal-single,
.gallery-item,
.mixed-media-grid,
.text-block,
.ul-content-journal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 1.2s cubic-bezier(0.25, 1, 0.5, 1), transform 1.2s cubic-bezier(0.25, 1, 0.5, 1);
    will-change: opacity, transform;
}

.is-in-view {
    opacity: 1;
    transform: translateY(0);
}

.gallery-item:nth-child(2) { transition-delay: 0.1s; }
.gallery-item:nth-child(3) { transition-delay: 0.2s; }
.gallery-item:nth-child(4) { transition-delay: 0.3s; }
.gallery-item:nth-child(5) { transition-delay: 0.4s; }

@media (max-width: 1024px) {
    .hader-journal-single {
        margin-bottom: 40px;
    }
    
    .single-title-journal {
        flex-direction: column;
    }
    
    .journal-gallery {
        column-count: 3;
    }

    .single-content-journal {
        flex-direction: column;
    }
    
    .text-block, .ul-content-journal {
        width: 100%;
    }
}

@media (max-width: 768px) {
    .single-journal-section {
        padding: 80px 15px 40px;
    }

    .hader-journal-single {
        margin-bottom: 30px;
        padding-bottom: 30px;
    }

    h1.journal-titles {
        font-size: 36px;
        line-height: 1.1;
    }

    .description-journal {
        font-size: 16px;
    }

    .journal-gallery {
        column-count: 2;
        column-gap: 10px;
    }

    .single-content-journal {
        gap: 30px;
        padding-top: 30px;
    }

    .text-block {
        font-size: 16px;
    }

    .mixed-media-grid:has(> :nth-child(2)) {
        grid-template-columns: 1fr;
    }

    .mixed-media-grid:has(> :nth-child(2)) .media-item {
        height: auto;
        aspect-ratio: 16 / 9;
    }
    
    .media-item video,
    .media-item img {
        height: 100%;
    }
}




.category-header {
    display: flex;
    flex-direction: column;
    padding: 110px 21px 55px;
}

h1.category-header-title {
    color: var(--main);
    font-family: Inter, sans-serif;
    font-size: 90px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%;
    text-transform: uppercase;
    position: fixed;
    top: 110px;
    left: 21px;
    z-index: -1; 
    pointer-events: none; 
    
    margin: 0;
    will-change: opacity, visibility;
}

h1.category-header-title span {
    display: inline-block;
    opacity: 0;
    transform: translateY(30px);
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.6s ease;
    will-change: transform, opacity;
}

h1.category-header-title span.visible {
    opacity: 1;
    transform: translateY(0);
}

main, section, .content {
    position: relative;
    z-index: 1;
}

@media (max-width: 768px) {
    .category-header {
        padding: 90px 14px 10px;
    }
    h1.category-header-title {
        font-size: 35px;
        top: 90px;
        left: 14px;
    }
}

section.error {
    padding: 0 14px;
    height: 70svh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    gap: 20px;
    overflow: hidden; 
}

section.error h1 {
    color: var(--main);
    font-family: Inter, sans-serif;
    font-size: 150px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%;
    text-transform: uppercase;
    animation: floating 3s ease-in-out infinite;
}

section.error p {
    color: var(--text-dark);
    font-family: Inter, sans-serif;
    font-size: 18px;
    font-style: normal;
    font-weight: 300;
    line-height: 100%;
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.8s ease-out;
}

section.error p.visible {
    opacity: 1;
    transform: translateY(0);
}

@keyframes floating {
    0% { transform: translate(0, 0px); }
    50% { transform: translate(0, -15px); }
    100% { transform: translate(0, 0px); }
}

@media (max-width: 768px) {
    section.error h1 {
        font-size: 80px;
    }
    section.error p {
        font-size: 16px;
    }
}




.contact-page-section {
    width: 100%;
    padding: 140px 21px 80px;
    box-sizing: border-box;
    min-height: 80vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.contact-header-wrapper {
    margin-bottom: 60px;
    border-bottom: 1px solid rgba(32, 32, 39, 0.1);
    padding-bottom: 30px;
}

h1.contact-main-title {
    font-family: 'Inter', sans-serif;
    font-size: 120px;
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
    color: var(--text-dark);
    margin: 0;
}

.text-accent {
    color: var(--main);
}

.contact-info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr); 
    gap: 60px 40px;
    width: 100%;
}

.contact-info-grid > *:nth-child(3) {
    grid-column-start: 1;
}

.contact-block {
    display: flex;
    flex-direction: column;
    gap: 20px;
    align-items: flex-start;
}

.contact-label {
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    text-transform: uppercase;
    color: var(--main);
    font-weight: 500;
    letter-spacing: 0.5px;
}

.contact-text-wrapper {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.contact-text-main {
    font-family: 'Inter', sans-serif;
    font-size: 28px;
    font-weight: 400;
    color: var(--text-dark);
    line-height: 1.2;
}

.contact-text-sub {
    font-family: 'Inter', sans-serif;
    font-size: 18px;
    font-weight: 300;
    color: rgba(32, 32, 39, 0.6);
    line-height: 1.4;
}

a.contact-big-link {
    font-family: 'Inter', sans-serif;
    font-size: 28px;
    font-weight: 400;
    color: var(--text-dark);
    text-decoration: none;
    position: relative;
    line-height: 1.2;
    transition: color 0.3s ease;
    display: inline-block;
    word-break: break-all;
}

a.contact-big-link::after {
    content: '';
    position: absolute;
    width: 0;
    height: 1px;
    bottom: -2px;
    left: 0;
    background-color: var(--main);
    transition: width 0.3s ease;
}

a.contact-big-link:hover {
    color: var(--main);
}

a.contact-big-link:hover::after {
    width: 100%;
}

.contact-socials-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
    align-items: flex-start;
    width: 100%;
}

a.contact-social-link {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    position: relative;
    transition: color 0.3s ease;
    cursor: pointer;
}

.contact-krug {
    width: 10px;
    height: 10px;
    flex-shrink: 0;
    border-radius: 5px;
    background: var(--main);
}

a.contact-social-link span {
    color: #202027;
    font-family: Inter, sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 20px;
    transition: color 0.3s ease;
}

a.contact-social-link::after {
    content: '';
    position: absolute;
    width: 0;
    height: 1px;
    bottom: -4px;
    left: 0;
    background-color: var(--main);
    transition: width 0.3s ease;
}

a.contact-social-link:hover::after {
    width: 100%;
}

a.contact-social-link:hover span {
    color: var(--main);
}

.contact-anim {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
    will-change: opacity, transform;
}

.contact-anim.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 1024px) {
    h1.contact-main-title {
        font-size: 90px;
    }
    .contact-info-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 50px;
    }
}

@media (max-width: 768px) {
    .contact-page-section {
        padding: 100px 14px 60px;
    }
    h1.contact-main-title {
        font-size: 60px;
    }
    .contact-info-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    a.contact-big-link,
    .contact-text-main {
        font-size: 22px;
    }
    .contact-text-sub {
        font-size: 16px;
    }
}




.hero-section {
    position: relative;
    width: 100%;
    height: 100svh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    background-color: var(--text-dark);
}

.video-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    will-change: transform;
}

.hero-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.video-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.3);
    z-index: 2;
}

.hero-content {
    position: relative;
    z-index: 3;
    text-align: center;
    color: #FFF;
    mix-blend-mode: difference;
    will-change: transform, opacity;
}

.hero-title {
    display: flex;
    flex-direction: column;
    font-size: 8vw;
    line-height: 0.9;
    text-transform: uppercase;
    margin: 0;
}

.hero-title span {
    font-family: 'Asket Condensed', sans-serif;
    font-weight: 800;
    display: block;
    opacity: 0;
    transform: translateY(50px);
    animation: slideUpFade 1s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

.hero-title span:nth-child(2) {
    animation-delay: 0.2s;
    font-weight: 400;
    font-size: 1vw;
    padding-top: 10px;
    text-transform: none;
    font-family: var(--font-body);
    letter-spacing: 1px;
}

.scroll-indicator-wrapper {
    position: absolute;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.scroll-text {
    color: #FFF;
    font-family: var(--font-body);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 500;
    opacity: 0.8;
}

.scroll-line-container {
    width: 1px;
    height: 60px;
    background-color: rgba(255, 255, 255, 0.2);
    position: relative;
    overflow: hidden;
}

.scroll-line-inner {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--main);
    animation: scrollDown 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;
}

@keyframes slideUpFade {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes scrollDown {
    0% {
        transform: translateY(-100%);
    }
    100% {
        transform: translateY(100%);
    }
}

@media (max-width: 768px) {
    .hero-title {
        font-size: 13vw;
    }
    
    .hero-title span:nth-child(2) {
        font-size: 3vw;
    }

    .scroll-indicator-wrapper {
        bottom: 15px;
    }
}




.sound-toggle-btn {
    position: absolute;
    bottom: 35px; 
    right: 40px;
    z-index: 10;
    background: transparent;
    border: none;
    padding: 10px;
    cursor: pointer;
    color: #FFF;
    opacity: 0.7;
    transition: opacity 0.3s ease, transform 0.2s ease;
    outline: none;
}

.sound-toggle-btn:hover {
    opacity: 1;
    transform: scale(1.05);
}

.sound-icon {
    display: block;
    overflow: visible;
}


.sound-waves {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease;
}

.muted-line {
    opacity: 1; 
    transition: opacity 0.3s ease;
}

.sound-toggle-btn.sound-active .muted-line {
    opacity: 0; 
}

.sound-toggle-btn.sound-active .sound-waves {
    opacity: 1; 
    visibility: visible;
}

.sound-toggle-btn.sound-active .wave-1 {
    animation: pulseWave 1.2s infinite ease-in-out;
    transform-origin: center left;
}

.sound-toggle-btn.sound-active .wave-2 {
    animation: pulseWave 1.2s infinite ease-in-out 0.2s; 
    transform-origin: center left;
}

@keyframes pulseWave {
    0% {
        opacity: 0.4;
        transform: scale(0.95) translateX(0);
    }
    50% {
        opacity: 1;
        transform: scale(1.05) translateX(1px);
    }
    100% {
        opacity: 0.4;
        transform: scale(0.95) translateX(0);
    }
}

@media (max-width: 768px) {
    .sound-toggle-btn {
        right: 20px;
        bottom: 20px;
    }
}







.project-hero {
    padding: 140px 21px 40px;
    display: flex;
    flex-wrap: wrap;
    margin: 0 auto;
}

.project-sticky-title {
    flex: 1;
    min-width: 300px;
    position: sticky;
    top: 100px;
    height: fit-content;
    margin-bottom: 0;
    z-index: 2;
}

.project-main-title {
    font-size: clamp(50px, 8vw, 140px);
    line-height: 0.85;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--text-dark);
    margin: 0;
}

.project-details {
    flex: 0 0 40%;
    padding-top: 10px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.detail-row {
    border-top: 1px solid rgba(32, 32, 39, 0.1);
    padding-top: 10px;
}

.detail-label {
    font-size: 12px;
    text-transform: uppercase;
    color: var(--main);
    letter-spacing: 1px;
    display: block;
    margin-bottom: 5px;
}

.detail-value {
    font-size: 20px;
    color: var(--text-dark);
}

.project-desc {
    font-size: 20px;
    line-height: 1.5;
    font-weight: 300;
    margin-top: 10px;
}

.section-padding {
    padding: 60px 21px;
    margin: 0 auto;
}

.media-full-wrapper {
    width: 100%;
    height: auto;
    position: relative;
    opacity: 0;
    transform: scale(0.98);
    transition: all 1.2s var(--easing);
    overflow: hidden;
}

.media-full-wrapper.is-visible {
    opacity: 1;
    transform: scale(1);
}

.media-full-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    max-height: 80vh;
}

media-theme-sutro {
    width: 100%;
    display: block;
    box-shadow: 0 20px 40px rgba(0,0,0,0.1);
}

.scatter-gallery {
    position: relative;
    width: 100%;
    margin-top: 40px;
    margin-bottom: 40px;
    box-sizing: border-box;
}

.scatter-item {
    position: absolute;
    display: block;
    top: 0;
    left: 0;
    opacity: 0;
    transform-origin: center center;
    transition: opacity 0.8s var(--easing);
    will-change: transform;
    max-width: 500px; 
    box-sizing: border-box;
}

.scatter-item.is-loaded {
    opacity: 1;
}

.scatter-item img {
    width: 100%;
    height: auto; 
    object-fit: cover;
    display: block;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    transition: transform 0.6s var(--easing);
}

.scatter-item:hover {
    z-index: 50 !important;
}

.scatter-item:hover img {
    transform: scale(1.03);
}

.text-content-section {
    display: flex;
    justify-content: center;
    padding: 25px 21px;
}

.text-content-inner {
    max-width: 600px;
    text-align: left;
}

.text-content-inner.right-aligned {
    margin-left: auto;
    margin-right: 10%;
}

.text-content-inner h3 {
    font-size: 32px;
    text-transform: uppercase;
    margin-bottom: 20px;
    font-weight: 400;
}

.text-content-inner p {
    font-size: 18px;
    line-height: 1.6;
    color: var(--text-dark);
}

.next-project-banner {
    position: relative;
    width: 100%;
    height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    overflow: hidden;
    color: #ffffff;
    margin-top: 60px;
    opacity: 0;
    transform: scale(0.95);
    transition: opacity 1s var(--easing), transform 1s var(--easing);
}

.next-project-banner.is-visible {
    opacity: 1;
    transform: scale(1);
}

.np-bg-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.np-bg-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.0);
    transition: transform 1.2s var(--easing);
}

.next-project-banner:hover .np-bg-image img {
    transform: scale(1.08);
}

.np-bg-image video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.0);
    transition: transform 1.2s var(--easing);
}

.next-project-banner:hover .np-bg-image video {
    transform: scale(1.08);
}

.np-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(32, 32, 39, 0.4);
    z-index: 2;
    transition: background 0.6s ease;
}

.next-project-banner:hover .np-overlay {
    background: rgba(32, 32, 39, 0.6);
}

.np-content {
    position: relative;
    z-index: 3;
    text-align: center;
    padding: 21px;
}

.np-label {
    display: block;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 20px;
    color: var(--main);
}

.np-title {
    font-size: clamp(40px, 8vw, 100px);
    line-height: 0.9;
    text-transform: uppercase;
    margin: 0;
}
.video-scatter-gallery {
    position: relative;
    width: 100%;
    margin-top: 60px;
    margin-bottom: 60px;
    box-sizing: border-box;
}

.video-scatter-item {
    position: absolute;
    display: block;
    top: 0;
    left: 0;
    opacity: 0;
    transform-origin: center center;
    transition: opacity 0.8s var(--easing);
    will-change: transform;
    max-width: 800px; 
    box-sizing: border-box;
    overflow: hidden;
}

.video-scatter-item.is-loaded {
    opacity: 1;
}

.video-scatter-item media-theme-sutro {
    width: 100%;
    display: block;
    box-shadow: 0 20px 50px rgba(0,0,0,0.15);
    transition: transform 0.6s var(--easing);
}

.video-scatter-item:hover {
    z-index: 50 !important;
}

.video-scatter-item:hover media-theme-sutro {
    transform: scale(1.02);
}


@media (max-width: 768px) {
    .project-hero { padding-top: 100px; flex-direction: column; }
    .section-padding { padding: 40px 14px; }
    .project-sticky-title {
        position: relative;
        top: 10px;
        margin-bottom: 20px;
    }
    .scatter-gallery {
        position: relative !important;
        height: auto !important;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 15px;
        margin-top: 20px;
    }
    .text-content-inner p {
        font-size: 14px;
        line-height: 1.6;
        color: var(--text-dark)
    }
    .scatter-item {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        transform: none !important;
        opacity: 1;
    }
    .project-desc {
        font-size: 16px;
    }
    .detail-value {
        font-size: 16px;
    }
    .text-content-section { padding: 40px 21px; }
    .text-content-inner.right-aligned { margin: 0; }

    .video-scatter-gallery {
        position: relative !important;
        height: auto !important;
        display: grid;
        grid-template-columns: 1fr;
        gap: 30px;
        margin-top: 30px;
    }
    
    .video-scatter-item {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        transform: none !important;
        opacity: 1;
    }

}





body {
    transition: background-color 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.header {
    transition: background-color 0.4s ease;
}

.featured-project-section {
    position: relative;
    width: 100%;
    height: 100vh;
    min-height: 800px;
    display: flex;
    justify-content: center;
    align-items: center;
    perspective: 1000px;
    text-decoration: none;
    z-index: 1;
    margin-bottom: 20px;
    box-sizing: border-box;
}

.fp-title {
    position: relative;
    z-index: 20;
    font-family: 'Inter', sans-serif;
    font-size: clamp(50px, 8vw, 140px);
    font-weight: 700;
    text-transform: uppercase;
    text-align: center;
    line-height: 0.85;
    color: var(--text-dark);
    pointer-events: none;
    mix-blend-mode: multiply;
    opacity: 0;
    transform: translateY(50px) scale(0.95);
    transition: opacity 1s ease, transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}

.featured-project-section.active .fp-title {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.fp-media-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 10;
}

.fp-media {
    position: absolute;
    display: block;
    width: clamp(250px, 20vw, 400px);
    height: auto;
    opacity: 0;
    box-shadow: 0 30px 60px rgba(0,0,0,0.1);
    will-change: transform, opacity;
    transition: opacity 1s ease, clip-path 1.2s cubic-bezier(0.65, 0, 0.35, 1);
    clip-path: inset(100% 0 0 0);
    z-index: 15;
}

.fp-media.video-card {
    width: clamp(300px, 30vw, 550px);
}

.featured-project-section.active .fp-media {
    opacity: 1;
    clip-path: inset(0% 0 0 0);
}

.fp-media img,
.fp-media video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1.15);
    transition: transform 1.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.featured-project-section.active .fp-media img,
.featured-project-section.active .fp-media video {
    transform: scale(1);
}

.featured-project-section:hover .fp-media img,
.featured-project-section:hover .fp-media video {
    transform: scale(1.03);
}

.full-width-video {
    z-index: 5;
    background: transparent; 
}

.full-width-video .fp-video-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
}

.full-width-video .fp-video-bg video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transform: scale(1.05);
    transition: opacity 1s ease, transform 10s linear;
}

.featured-project-section.active.full-width-video .fp-video-bg video {
    opacity: 1;
    transform: scale(1);
}

.full-width-video .fp-title {
    color: #fff;
    mix-blend-mode: normal;
    text-shadow: 0 10px 30px rgba(0,0,0,0.3);
}

@media (max-width: 900px) {
    .featured-project-section {
        height: 100svh;
        min-height: 100svh;
        padding: 0;
        margin-bottom: 0;
        overflow: hidden; 
        flex-direction: column;
        justify-content: center;
    }

    .fp-media-container {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        display: block; 
    }

    .fp-media {
        width: 40vw; 
        aspect-ratio: 3/4;
        position: absolute; 
        box-shadow: 0 10px 20px rgba(0,0,0,0.1);
        z-index: 10;
        opacity: 0;
    }

    .fp-media.video-card {
        width: 45vw;
        aspect-ratio: 16/9;
    }

    .fp-title {
        font-size: 13vw;
        z-index: 30; 
        margin: 0;
        mix-blend-mode: normal; 
        text-shadow: 0 0 20px rgba(255,255,255,0.8);
    }

    .full-width-video {
        height: 100svh;
    }
}

html {
    overflow-x: hidden;
    overflow-y: scroll; 
}

body {
    overflow-x: hidden;
    position: relative; 
    min-height: 100vh;
}

@media (max-width: 900px) {
    .featured-project-section {
        min-height: 100svh; 
        height: auto; 
    }
    
    .fp-media-container, 
    .fp-video-bg {
        pointer-events: none;
        touch-action: none;
    }
}