html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*,:after,:before{-webkit-box-sizing:inherit;-moz-box-sizing:inherit;box-sizing:inherit}body{margin:0}article,aside,figcaption,figure,footer,header,main,nav,section{display:block}hr{box-sizing:content-box;height:0;overflow:visible}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}a,area,button,input,label,select,textarea{-ms-touch-action:manipulation;touch-action:manipulation}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}canvas{display:inline-block}[hidden],template{display:none}blockquote,canvas,dl,dt,em,h1,h2,h3,h4,h5,h6,i,img,li,ol,p,ul,video{margin:0;padding:0;border:0;vertical-align:baseline}a,button,div,h1,h2,h3,h4,h5,h6,input,select,span,textarea{outline:none}ol,ul{list-style-type:none}button,input[type=submit]{cursor:pointer}button::-moz-focus-inner,input[type=submit]::-moz-focus-inner{padding:0;border:0}table{border-spacing:0;border-collapse:collapse;width:100%}input[type=button],input[type=submit],input[type=text],textarea{-webkit-appearance:none;border-radius:0}.img-border{border:1px solid #000}.container{position:relative;width:100%;max-width:1250px;margin:0 auto;padding-right:27px;padding-left:27px}.container_flex{display:-webkit-flex;display:-ms-flexbox;display:flex;padding:0!important;background-color:#eeedef}.content-wrapper{width:100%;max-width:870px;padding:60px 27px 0;overflow:hidden}.content-wrapper .forum-block{display:none}.h1,h1{font-size:28px;line-height:1.28}.h1,.h2,h1,h2{font-weight:700;font-family:Navi,arial,sans-serif}.h2,h2{font-size:20px;line-height:1.5}.h3,h3{font-size:18px;line-height:1.44}.h3,.h4,h3,h4{font-family:Navi,arial,sans-serif;font-weight:700}.h4,h4{font-size:14px;line-height:1.42}@font-face{font-weight:400;font-family:OpenSans;font-style:normal;src:local("OpenSans"),url(../fonts/OpenSans/OpenSans-Regular.woff2) format("woff2"),url(../fonts/OpenSans/OpenSans-Regular.woff) format("woff");font-display:swap}@font-face{font-weight:400;font-family:ProximaNova;font-style:normal;src:local("ProximaNova"),url(../fonts/ProximaNova/ProximaNova-Regular.woff2) format("woff2"),url(../fonts/ProximaNova/ProximaNova-Regular.woff) format("woff");font-display:swap}@font-face{font-weight:600;font-family:ProximaNova;font-style:normal;src:local("ProximaNova"),url(../fonts/ProximaNova/ProximaNova-Semibold.woff2) format("woff2"),url(../fonts/ProximaNova/ProximaNova-Semibold.woff) format("woff");font-display:swap}@font-face{font-weight:700;font-family:ProximaNova;font-style:normal;src:local("ProximaNova"),url(../fonts/ProximaNova/ProximaNova-Bold.woff2) format("woff2"),url(../fonts/ProximaNova/ProximaNova-Bold.woff) format("woff");font-display:swap}@font-face{font-weight:400;font-family:Navi;font-style:normal;src:local("Navi"),url(../fonts/Navi/Navi-Regular.woff2) format("woff2"),url(../fonts/Navi/Navi-Regular.woff) format("woff");font-display:swap}@font-face{font-weight:300;font-family:Navi;font-style:normal;src:local("Navi"),url(../fonts/Navi/Navi-Light.woff2) format("woff2"),url(../fonts/Navi/Navi-Light.woff) format("woff");font-display:swap}@font-face{font-weight:700;font-family:Navi;font-style:normal;src:local("Navi"),url(../fonts/Navi/Navi-Bold.woff2) format("woff2"),url(../fonts/Navi/Navi-Bold.woff) format("woff");font-display:swap}.icon-accept{width:14.9px;height:7.62px}.icon-accept,.icon-arrow{fill:currentColor;stroke:initial}.icon-arrow{width:14.89px;height:34.47px}.icon-arrows{width:8.49px;height:14.14px;fill:currentColor;stroke:initial}.icon-comments{width:15px;height:15.75px;fill:none;stroke:#707070}.icon-discord{width:26.63px;height:18.48px;fill:#8f6dd0;stroke:initial}.icon-dislike{width:13.54px;height:16px;fill:#fcdcd0;stroke:initial}.icon-eye{width:512px;height:512px;fill:currentColor;stroke:initial}.icon-facebook-black{fill:#1c1b1f}.icon-facebook,.icon-facebook-black{width:30px;height:30px;stroke:initial}.icon-facebook{fill:#fff}.icon-fb-clear{width:22.04px;height:22.04px;fill:#5794ef;stroke:initial}.icon-goblet-transparent{width:68.84px;height:76.61px;fill:currentColor;stroke:initial}.icon-goblet{width:18.02px;height:20.06px;fill:#fff;stroke:initial}.icon-green-arrow{width:18px;height:18px;fill:#f5f5f5;stroke:initial}.icon-hot-comments{width:29.79px;height:21.73px;fill:#d7373f;stroke:transparent}.icon-image{width:20px;height:16px;fill:currentColor;stroke:initial}.icon-instagram-black{width:30px;height:30px;fill:#1c1b1f;stroke:initial}.icon-instagram{width:30px;height:30px;fill:#fff;stroke:initial}.icon-like{width:13.54px;height:16px;fill:#b9f8c0;stroke:initial}.icon-likes{width:10.15px;height:12px;fill:#dddde0;stroke:initial}.icon-live-video{width:20px;height:15px;fill:#f5523a;stroke:initial}.icon-login{width:31.45px;height:31.45px;fill:currentColor;stroke:initial}.icon-main-logo{width:83.83px;height:73.76px;fill:#fff136;stroke:initial}.icon-picture{width:22px;height:18px;fill:#fff;stroke:initial}.icon-pin{width:15.03px;height:14.97px;fill:1f2021;stroke:initial}.icon-play-btn{width:40px;height:40px;fill:#f5f5f3;stroke:initial}.icon-quote{width:34.86px;height:25.77px;fill:#e6e6e6;stroke:initial}.icon-reply{width:20.06px;height:15.05px;fill:#707070;stroke:initial}.icon-search{width:18px;height:18px}.icon-search,.icon-send{fill:currentColor;stroke:initial}.icon-send{width:18.49px;height:18.5px}.icon-steam{width:30px;height:30px;fill:#fff;stroke:initial}.icon-telegram-clear{width:27px;height:23.51px;fill:#08c;stroke:initial}.icon-telegram-white{width:16.31px;height:13.67px;fill:#fff;stroke:initial}.icon-telegram{width:30px;height:30px;fill:#fff;stroke:initial}.icon-tik-tok-white{width:12.24px;height:13.99px;fill:#fff;stroke:initial}.icon-tik-tok{width:30px;height:30px;fill:#fff;stroke:initial}.icon-twitch-player{width:256px;height:256px;fill:#5a3e85;stroke:initial}.icon-twitter-black{width:30px;height:30px;fill:#1c1b1f;stroke:initial}.icon-twitter-clear{width:22.53px;height:18.31px;fill:#3b9cd6;stroke:initial}.icon-twitter-white{width:14.4px;height:11.71px;fill:#fff;stroke:initial}.icon-twitter{width:30px;height:30px;fill:#fff;stroke:initial}.icon-ukraine{fill:#ffe15a}.icon-ukraine,.icon-usa{width:18px;height:11.79px;stroke:initial}.icon-usa{fill:#41479b}.icon-vk-clear{width:24.49px;height:14px;fill:#6d9bd0;stroke:initial}.icon-vk-white{width:18.94px;height:10.83px}.icon-vk,.icon-vk-white{fill:#fff;stroke:initial}.icon-vk{width:30px;height:30px}.icon-y-dislike,.icon-y-like{width:24px;height:24px;fill:currentColor;stroke:initial}.icon-youtube-player{width:26px;height:18.2px;fill:#fff;stroke:initial}.icon-youtube{width:159px;height:110px;fill:red;stroke:initial}body{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;min-height:100%;background-color:#1a191d;-webkit-tap-highlight-color:transparent;font-family:Navi,arial,sans-serif;font-size:14px;line-height:1.42}html,main{height:100%}main{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;width:100%;max-width:1250px;margin:0 auto}input[type=password]::-ms-reveal{display:none}a{text-decoration:none}.mobile{display:none}.desktop{display:block}.swipe-slide,.swiper-slide{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0)}.swiper-wrapper{-webkit-transform-style:preserve-3d}[data-page=seo] .content-wrapper{padding-bottom:50px;max-width:100%}.text-right{text-align:right}.text-left{text-align:left}.branding header.header{margin-top:203px}.branding-content{background-color:#1a191d}.branding-desktop{position:fixed;display:block;width:100%;height:100%;min-height:1080px;background-repeat:no-repeat;background-position:top;cursor:pointer}.branding-desktop--video{text-align:center}.branding-mobile{display:none;width:100%;height:200px;line-height:0;background:top no-repeat;cursor:pointer}::-webkit-scrollbar-track{background-color:#dddde0}::-webkit-scrollbar{width:4px;height:10px;background-color:transparent}::-webkit-scrollbar-thumb{background-color:#707070}html{scrollbar-color:#707070 #dddde0;scrollbar-width:thin}.header{position:relative;z-index:99;width:100%;max-width:1250px;margin:0 auto;background-color:#1c1b1f}.header__wrapper{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.header__top{position:relative;z-index:1;overflow:hidden;background-color:#000;opacity:0;transition:.4s ease}.header__top--loaded{opacity:1}.header__top-links{-webkit-align-items:center;-ms-flex-align:center;align-items:center}.header__top-link,.header__top-links{display:-webkit-flex;display:-ms-flexbox;display:flex}.header__top-link{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100%;padding:20px 0;color:#999c9e;cursor:pointer;transition:.5s}.header__top-link img{max-width:110px;max-height:35px;-o-object-fit:contain;object-fit:contain}.has-hover .header__top-link:hover{color:#fff;-webkit-transform:translateY(-2px);-ms-transform:translateY(-2px);transform:translateY(-2px);opacity:1;-webkit-filter:none;filter:none}.header__top.swiper-container-initialized .header__top-link{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.header__bottom{position:relative;z-index:1;height:90px;padding:0 27px 0 39px;background-color:#1e1d23}.header__bottom,.header__bottom-container{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.header__bottom-container{min-width:150px}.header__bottom-link{position:relative;padding:35px 22px;color:#f5f5f7;font-size:14px;line-height:1.42;text-transform:uppercase;text-decoration:none;cursor:pointer}.header__bottom-link span{position:relative;pointer-events:none}.header__bottom-link span:after{position:absolute;bottom:-2px;left:0;width:100%;height:2px;background-color:#fff136;opacity:0;transition:.3s;content:""}.has-hover .header__bottom-link:hover span:after{opacity:1}.has-hover .header__bottom-link:hover>.header__bottom-list{opacity:1;pointer-events:auto}.header__bottom-link.active span:after{opacity:1}.header__bottom-link_btn{display:inline-block;min-width:98px;padding:7px 10px!important;color:#fff136;text-align:center}.header__bottom-link_btn:not(:last-child){margin-right:10px}.header__bottom-nav{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-right:20px;margin-left:10px}.header__bottom-list{position:absolute;top:100%;left:0;width:100%;min-width:160px;text-align:left;opacity:0;transition:.3s ease;pointer-events:none}.header__bottom-list-link{display:block;padding:0 22px;color:#f5f5f5;font-size:16px;line-height:3.5;text-transform:none;text-decoration:none;background-color:#1b1b1b;transition:.4s ease}.has-hover .header__bottom-list-link:hover{color:#fff136;background-color:#27262b}.header__bottom-list.is-active{opacity:1;pointer-events:auto}.header__search{padding:10px;color:#f5f5f7;cursor:pointer}.header__search.is-active{color:#f3e535}.header__search-btn{width:100%;color:#1e1d23;font-weight:600;font-size:14px;line-height:40px;text-align:center;background-color:#eeedef;cursor:pointer}.header__home-link svg{width:84px;height:67px}.header__home-link.home-page{pointer-events:none}.switch-language{position:relative}.switch-language__list{position:absolute;top:100%;left:0;width:100%;text-align:center;background-color:#fff;-webkit-transform:translateY(-10px);-ms-transform:translateY(-10px);transform:translateY(-10px);opacity:0;transition:.5s}.switch-language__list li{padding:5px}.switch-language__list a{position:relative;display:block;color:#27262b;font-size:14px;text-decoration:none}.switch-language__list a:after{position:absolute;bottom:0;left:50%;width:70%;height:1px;background-color:#1c1b1f;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);opacity:0;transition:.3s;content:""}.has-hover .switch-language__list a:hover:after{opacity:1}.switch-language__btn{padding:10px;color:#fff;font-size:14px;text-transform:uppercase;background-color:transparent;border:none;outline:none}.switch-language.opened .switch-language__list{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);opacity:1}.login{position:relative}.login__avatar{width:32px;height:32px;-o-object-fit:cover;object-fit:cover;border-radius:50%}.login__link{display:inline-block;cursor:pointer}.login__notification{position:absolute;top:0;right:0;z-index:1;width:11px;height:11px;background-color:#2abe57;border:2px solid #1e1d23;border-radius:50%}.login svg{color:#999c9e;transition:.5s}.has-hover .login:hover svg{color:#fff}.login__popup{position:absolute;top:calc(100% + 17px);right:-20px;z-index:11;background-color:#fff;border-radius:4px}.login__popup:before{position:absolute;top:-30px;right:20px;border:16px solid transparent;border-bottom-color:#fff;content:""}.login__popup-notification{position:absolute;top:0;right:2px;width:11px;height:11px;background-color:#2abe57;border:2px solid #fff;border-radius:50px}.login__popup-header{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:17px 15px;border-bottom:1px solid #eeedef}.login__popup-avatar{position:relative;width:50px;height:50px}.login__popup-avatar svg{color:#999c9e!important}.login__popup-avatar img{width:100%;height:100%;border-radius:50%}.login__popup-info{margin-right:17px}.login__popup-nickname{margin-bottom:4px;color:#1e1d21;font-weight:700;font-size:18px;white-space:nowrap}.login__popup-reputation{color:#707070;font-size:12px}.login__popup-body{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.login__popup-body,.login__popup-item{display:-webkit-flex;display:-ms-flexbox;display:flex}.login__popup-item{-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;min-height:40px;padding-right:15px;padding-left:15px;transition:.3s ease}.login__popup-item span{color:#1e1d23;font-size:14px}.login__popup-item .yellow{padding:3px 5px;font-size:12px;background-color:#fff136;border-radius:4px}.login__popup-item_exit span{color:#f6341e}.has-hover .login__popup-item:hover{background-color:#eeedef}.hamburger{position:relative;display:none;width:18px;height:16px;padding:20px 20px 20px 0}.hamburger:after,.hamburger:before{position:absolute;top:calc(50% - 8px);left:calc(50% - 9px);width:18px;height:2px;background-color:#fff;transition:.3s;content:""}.hamburger:after{top:calc(50% + 6px)}.hamburger span{position:absolute;top:calc(50% - 1px);left:calc(50% - 9px);width:18px;height:2px;background-color:#fff;transition:.3s}.hamburger.opened span{background-color:#f3e535;-webkit-transform:rotate(-45deg) translate(1px,-1px);-ms-transform:rotate(-45deg) translate(1px,-1px);transform:rotate(-45deg) translate(1px,-1px)}.hamburger.opened:before{background-color:#f3e535;-webkit-transform:rotate(45deg) translate(4px,4px);-ms-transform:rotate(45deg) translate(4px,4px);transform:rotate(45deg) translate(4px,4px)}.hamburger.opened:after{opacity:0}.search-block{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%;padding:0 15px 0 20px;background-color:#fff;transition:.3s ease-out}.search-block-wrapp{position:absolute;top:100%;left:0;width:100%;background-color:#fff}.search-block-wrapp .search-section__body{padding:30px 20px 50px;background-color:#dddde0;box-shadow:0 10px 15px 0 hsla(0,0%,56.9%,.16)}.search-block__btn{padding:20px;background-color:transparent;border:none;outline:none}.search-block__input{width:100%;padding:21px 10px 21px 0;font-size:18px;line-height:1.2;border:none;outline:none}.search-block__close{position:relative;padding:25px;cursor:pointer}.search-block__close:after,.search-block__close:before{position:absolute;top:24px;left:17px;width:18px;height:2px;background-color:#f3e535;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);content:""}.search-block__close:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.search-block.is-active{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.menu{position:absolute;top:0;left:0;z-index:12;display:-webkit-flex;display:-ms-flexbox;display:flex;display:none;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;width:100vw;height:100%;height:100vh;background-color:#1a191d;-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%);opacity:0;transition:.5s;pointer-events:none}.menu.opened{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);opacity:1;pointer-events:auto}.menu__wrapper{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;min-height:100%;padding-top:100px;overflow:hidden;overflow-y:auto}.menu-nav,.menu__wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex}.menu-nav{position:relative;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%}.menu-nav__item,.menu-nav__list{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.menu-nav__lists{width:100%}.menu-nav__item{position:relative;width:100%;margin:0;padding:15px 16px;color:#f5f5f3;font-size:14px;line-height:1.42;text-transform:uppercase;border-top:1px solid rgba(238,237,239,.3);transition:.3s}.menu-nav__item:after{position:absolute;top:calc(50% - 4px);right:16px;width:8px;height:8px;border-right:2px solid #fff;border-bottom:2px solid #fff;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);transition:.3s;content:""}.menu-nav__item_btn{display:inline-block;color:#fff136;background-color:transparent}.menu-nav__item_btn:not(:last-child){margin-right:10px}.menu-nav__item_btn:after{border-color:#fff136!important}.menu-nav__item:last-child{border-bottom:1px solid rgba(238,237,239,.3)}.menu-nav__item_link:after{content:none}.menu-nav__link{padding:6px 0;color:#f5f5f3;font-weight:400;font-size:12px;line-height:1.5;text-decoration:none;transition:.3s}.has-hover .menu-nav__link:hover{color:#f3e535}.menu-panel{position:absolute;z-index:5;width:100%;height:100vh;background-color:#1a191d;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);opacity:0;transition:.6s ease;pointer-events:none}.menu-panel__btn{position:relative;padding:15px 30px;color:#f5f5f7;font-weight:500;font-size:14px;line-height:1.43;text-transform:uppercase;border-top:1px solid rgba(238,237,239,.2);border-bottom:1px solid rgba(238,237,239,.2)}.menu-panel__btn:before{position:absolute;top:calc(50% - 4px);left:16px;width:8px;height:8px;border-right:2px solid #fff;border-bottom:2px solid #fff;-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg);transition:.3s;content:""}.menu-panel__link{display:block;padding:14.5px 30px;color:#f5f5f7;font-weight:500;font-size:14px;line-height:1.43;text-decoration:none;border-bottom:1px solid rgba(238,237,239,.2)}.menu-panel.is-active{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);opacity:1;pointer-events:auto}.menu-language-switcher{position:relative;margin-bottom:20px;padding:15px 16px;color:#f5f5f7;border-bottom:1px solid rgba(238,237,239,.2)}.menu-language-switcher,.menu-language-switcher__title{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.menu-language-switcher__title{width:100%}.menu-language-switcher__btns{position:absolute;top:0;right:0;z-index:2;display:-webkit-flex;display:-ms-flexbox;display:flex;height:100%;color:#27262b;background-color:#fff;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);transition:.3s}.menu-language-switcher__btn{padding:15px;color:#27262b;text-decoration:none}.menu-language-switcher.is-active .menu-language-switcher__btns{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.menu .forum-block__item{width:calc(100% - 36px);min-height:90px;margin:0 auto}.footer{position:relative;z-index:1;width:100%;max-width:1250px;margin:0 auto;background-color:#1e1d23}.footer__wrapp{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.footer__header,.footer__wrapp{display:-webkit-flex;display:-ms-flexbox;display:flex}.footer__header{padding:50px 27px 0;background:url(../img/footer-top-bg.png) no-repeat #2a292e;background-size:cover}.footer__header-content{width:100%;max-width:585px;color:#fff}.footer__header-title{margin-bottom:22px}.footer__header-description{margin-bottom:24px;font-weight:400;font-size:18px;line-height:1.44}.footer__header-img{margin-top:-100px;margin-left:100px}.footer__header-img img{display:block;height:312px}.footer__main{padding:30px 27px 73px}.footer__main-sections{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%}.footer__main-links,.footer__main-section{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.footer__main-links{transition:.3s}.footer__main-section{position:relative;width:20%;margin-bottom:auto}.footer__main-section.opened .footer__main-title{margin-bottom:20px}.footer__main-section.opened .footer__main-title:after{-webkit-transform:rotate(45deg) translateY(-50%);-ms-transform:rotate(45deg) translateY(-50%);transform:rotate(45deg) translateY(-50%)}.footer__main-section.opened .footer__main-links{margin:0 0 -16px;opacity:1;pointer-events:all}.footer__main-section_link{position:relative;color:#fff136;font-size:14px;line-height:15px;text-transform:uppercase;transition:.3s}.footer__main-section:first-child .footer__main-link{font-weight:500;font-size:14px}.footer__main-section:not(:first-child) .footer__main-link{color:#f5f5f3}.footer__main-title{position:relative;width:100%;margin-bottom:25px;color:#9c9a9d;font-size:14px;line-height:1.42;text-transform:uppercase;transition:.3s}.footer__main-title_btn{display:inline-block;width:auto;margin-top:-10px;margin-left:-10px;padding:7px 10px;color:#fff136;background-color:#1c1b1f}.footer__main-title_btn:not(:last-child){margin-right:10px}.footer__main-title_btn:after{border-color:#fff136!important}.footer__main-link{padding:6px 0;color:#fff;font-weight:400;font-size:12px;line-height:1.5;text-decoration:none;transition:.3s}.has-hover .footer__main-link:hover{color:#b6b7b9}.footer__main-social{display:-webkit-flex;display:-ms-flexbox;display:flex;margin-top:65px}.footer__main-social-info{width:100%;max-width:180px;margin-right:80px;color:#999c9e}.footer__main-social-info h4{line-height:30px}.footer__main-social-info span{margin-right:10px;color:#f5f5f3;font-weight:700;font-size:18px;line-height:26px}.footer__main-social-links{-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%}.footer__main-social-link,.footer__main-social-links{display:-webkit-flex;display:-ms-flexbox;display:flex}.footer__main-social-link{-webkit-align-items:center;-ms-flex-align:center;align-items:center;text-decoration:none}.footer__main-social-link>svg{max-width:30px;max-height:30px}.footer__main-social-link span{margin-left:10px;color:#707070;font-size:12px;line-height:1.66;transition:.3s}.has-hover .footer__main-social-link:hover span{color:#b6b7b9}.footer__bottom{position:relative;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:24px 27px;background-color:#000}.footer__bottom,.footer__bottom-copyright{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.footer__bottom-copyright-text{width:100%;max-width:155px;margin-left:14px;color:#707070;font-size:12px;line-height:1.66}.footer__bottom-copyright .icon-main-logo{width:50px;height:40px;-webkit-filter:grayscale(1);filter:grayscale(1)}.footer__bottom-policy{color:#707070;font-size:12px;line-height:1.66;display:none}.footer__bottom-policy a{color:#707070;text-decoration:none;transition:.3s}.has-hover .footer__bottom-policy a:hover{color:#b6b7b9}.footer__bottom-privacy{color:#707070;font-size:12px;line-height:1.66}.footer__bottom-privacy a{color:#707070;text-decoration:none;transition:.3s}.has-hover .footer__bottom-privacy a:hover{color:#b6b7b9}.footer__seo-h1{padding:5px 27px;color:#2a292e;line-height:1}.footer .brights--left{display:none;margin-top:10px}.footer .brights--left>a{font-size:12px;color:#707070;line-height:.8}.footer .brights>a{display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end;line-height:.7}.footer .brights>a>svg{margin-left:5px}.btn{display:inline-block;padding:11px 16px;color:#27262b;font-weight:400;font-size:14px;line-height:1.22;text-align:center;text-decoration:none;background-color:#fff136;border:none;outline:none;cursor:pointer;transition:.3s}.has-hover .btn:hover{background-color:#f3e535}.btn[disabled]{color:#f3e535;background-color:#fff794;pointer-events:none}.btn.gray{background-color:#dddde0}.has-hover .btn.gray:hover{background-color:#d0d0d4}.picture,.picture:before{position:relative}.picture:before{display:block;padding-top:100%;content:""}.picture__wrapper{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%}.picture__picture{display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;height:100%}.picture__picture img{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;font-family:"object-fit: cover;object-position: center;"}.main-title{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-bottom:20px;color:#27262b;font-weight:700;font-size:20px;line-height:1.3;text-transform:uppercase}.main-title_sidebar{margin-bottom:0}.main-title_sidebar:before{position:absolute;top:50%;left:-25px;width:3px;height:40px;background-color:#fff136;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);content:""}.main-title__results{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-left:auto}.main-title__results span{margin-right:3px;color:#707070;font-weight:400;font-size:14px;text-transform:none}.main-title__results-item{display:-webkit-flex;display:-ms-flexbox;display:flex;width:22px;height:22px;background-color:#fff}.main-title__results-item:not(:last-child){margin-right:5px}.main-title__results-item span{margin:auto;color:#2abe57;font-weight:700;font-size:11px;line-height:1;text-transform:uppercase}.main-title__results-item--lose span{color:#f6341e}.sidebar{position:relative;width:100%;max-width:380px;padding:60px 25px 0;background-color:#fff;border-left:1px solid #eeedef}.sidebar__banner{display:-webkit-flex;display:-ms-flexbox;display:flex;margin-top:20px;overflow:hidden;line-height:0;cursor:pointer}.sidebar__banner:first-child{margin-top:0}.sidebar__banner img{display:block;min-width:100%}.sidebar__banner video{width:100%;height:100%}.sidebar .main-broadcasts{margin-bottom:60px}.sidebar .video-item{width:100%;min-height:200px;margin-bottom:0}.sidebar .video-item__img .picture{position:relative}.sidebar .video-item__img .picture:before{display:block;width:100%;padding-top:60.42296%;content:""}.sidebar__pubg-chat{margin-bottom:60px}.sidebar__pubg-chat>iframe{max-width:100%;border:none}.live,.sidebar .match-item_live .match-item__opponents{display:-webkit-flex;display:-ms-flexbox;display:flex}.live{-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:54px;height:26px;padding:6px;background-color:#f6341e}.live__circle{position:relative;width:10px;height:10px;margin-right:5px;border:1px solid #fff;border-radius:50%}.live__circle,.live__circle:before{-webkit-animation:pulse 1.2s linear infinite;animation:pulse 1.2s linear infinite}.live__circle:before{position:absolute;top:2px;left:2px;z-index:1;width:4px;height:4px;background-color:#fff;border-radius:50%;content:""}.live__text{color:#fff;font-weight:700;font-size:14px;line-height:1.29}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.5);transform:scale(1.5)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.5);transform:scale(1.5)}to{-webkit-transform:scale(1);transform:scale(1)}}.match-item{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;min-height:70px;overflow:hidden;background-color:#eeedef;transition:.3s}.match-item:not(:last-child){margin-bottom:5px}.has-hover .match-item:hover{background-color:#dddde0;-webkit-transform:translateY(-1px);-ms-transform:translateY(-1px);transform:translateY(-1px)}.match-item__link{position:absolute;top:0;left:0;z-index:3;width:100%;height:100%}.has-hover .match-item__link:hover+.match-item__wrapp{-webkit-transform:translateY(-1px);-ms-transform:translateY(-1px);transform:translateY(-1px);transition:.6s}.match-item__wrapp{width:100%;transition:.6s}.match-item__game,.match-item__wrapp{display:-webkit-flex;display:-ms-flexbox;display:flex}.match-item__game{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:50px;min-height:100%;background-color:#dddde0}.match-item__game img{max-width:25px;max-height:25px}.match-item__body{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%;padding:15px 0 11px 12px;overflow:hidden}.match-item__body .live{display:none}.match-item__date{display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:14px;overflow:hidden;color:#707070;font-size:12px;line-height:1.17;white-space:nowrap}.match-item__date span{margin-right:3px;font-weight:700}.match-item__date span:after{content:" / "}.match-item__date .match-item__league-name{position:relative;z-index:3;margin-right:3px;color:#707070;transition:.3s}.has-hover .match-item__date .match-item__league-name:hover{color:#27262b}.match-item__date .match-item__league-name:after{content:" / "}.match-item__opponents{position:relative;display:-ms-grid;display:grid;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-ms-grid-columns:1fr fit-content(10px) 1fr;grid-template-columns:1fr fit-content(10px) 1fr}.match-item__opponents--pubg{-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.match-item__opponent{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;overflow:hidden}.match-item__opponent-icon{margin-right:8px}.match-item__opponent-icon img,.match-item__opponent-icon svg{width:23px}.match-item__opponent-name{overflow:hidden;color:#27262b;font-weight:700;font-size:14px;line-height:1.21;white-space:nowrap;text-overflow:ellipsis;transition:.5s ease}.match-item__opponent-result{margin-right:5px;margin-left:5px}.match-item__opponent-separate{-webkit-align-items:center;-ms-flex-align:center;align-items:center}.match-item__opponent-score{display:-webkit-flex;display:-ms-flexbox;display:flex;padding:0 7px;color:#000;font-size:14px;line-height:1.21}.match-item__opponent-score .winner{font-weight:700}.match-item__opponent-score span{padding:0 2px;font-weight:700}.match-item__opponent-versus{padding:0 7px;line-height:1}.match-item__opponent--link{position:relative;z-index:5}.has-hover .match-item__opponent--link:hover .match-item__opponent-name{color:#f3e535}.match-item__opponent-link{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%}.match-item__league{position:relative;z-index:3;display:none;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:70px;background-color:#fff794}.match-item__league-stage{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.match-item__league-img{width:30px;height:30px;margin-right:8px}.match-item__league-img img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.match-item__league-text{width:100%;color:#707070;font-weight:600;font-size:14px;line-height:1.21}.match-item_live{min-height:80px;background-color:#fff136}.has-hover .match-item_live:hover{background-color:#f3e535;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.match-item_live:not(:last-child){margin-bottom:0}.match-item_live:first-child{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.match-item_live:first-child .match-item__league{display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:18px}.match-item_live:first-child .match-item__league-img{width:46px;height:46px;margin-right:30px}.match-item_live:first-child .match-item__league-name{font-weight:700}.match-item_live:first-child .match-item__league-stage{font-weight:400}.match-item_live:first-child .match-item__wrapp{-webkit-order:1;-ms-flex-order:1;order:1;min-height:80px}.match-item_live .match-item__game{width:73px;background-color:#f3e535}.match-item_live .match-item__opponent{width:100%}.match-item_live .match-item__opponent-separate{position:absolute;right:0;height:100%}.match-item_live .match-item__opponent-score{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around;height:100%}.match-item_live .match-item__opponent-score span{display:none}.match-item_live .match-item__opponent-score-first{color:#1cc052;text-align:center}.match-item_live .match-item__opponent-score-second{color:#f6341e;text-align:center}.match-item_live .match-item__opponent-score-wrapp{display:-webkit-flex;display:-ms-flexbox;display:flex}.match-item_live .match-item__opponent-round{margin-left:10px;color:#000;font-size:14px;font-family:Navi,arial,sans-serif}.match-item_live .match-item__opponent-round:before{content:"("}.match-item_live .match-item__opponent-round:after{content:")"}.match-item.white{background-color:#fff}.matches{position:relative;width:100%;margin-bottom:60px}.matches .main-title{margin:0}.matches__header{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:25px}.matches__body{margin-bottom:35px}.matches__btn .btn{min-width:100%}.matches_live{margin-bottom:60px}.matches_live .matches__header{display:-webkit-flex;display:-ms-flexbox;display:flex}.matches__mobile .matches-list.forthcoming{margin-bottom:60px}.matches__mobile-controls{position:relative;display:none;padding-bottom:10px;overflow-x:auto}.matches__mobile-controls:after{position:absolute;bottom:0;left:0;z-index:0;width:100%;height:2px;background-color:#eeedef;transition:.3s;content:""}.matches__mobile-control{position:relative;margin-right:30px;color:#707070;font-weight:700;font-size:16px;line-height:1.63;white-space:nowrap;text-decoration:none;transition:.3s}.matches__mobile-control:after{position:absolute;bottom:-10px;left:0;z-index:2;width:100%;height:2px;background-color:#1f2021;opacity:0;transition:.3s;content:""}.matches__mobile-control.is-active{color:#1f2021}.matches__mobile-control.is-active:after{opacity:1}.forum-block,.matches__mobile-container{position:relative}.forum-block{margin-bottom:60px}.forum-block__body{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.forum-block__body,.forum-block__item{display:-webkit-flex;display:-ms-flexbox;display:flex}.forum-block__item{position:relative;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:19px 18px 22px;overflow:hidden;background-color:#fff;border:1px solid #efefef;transition:.3s}.has-hover .forum-block__item:hover{box-shadow:0 10px 15px 0 hsla(0,0%,56.9%,.16);-webkit-transform:translateY(-2px);-ms-transform:translateY(-2px);transform:translateY(-2px)}.forum-block__item:not(:last-child){margin-bottom:6px}.forum-block__item .icon-hot-comments{display:none}.forum-block__item_hot{background-color:#fff794;border-color:#fff794}.has-hover .forum-block__item_hot:hover{box-shadow:0 5px 15px 0 #ffe29f;-webkit-transform:translateY(-2px);-ms-transform:translateY(-2px);transform:translateY(-2px)}.forum-block__item_hot .icon-comments{display:none}.forum-block__item_hot .icon-hot-comments{display:block;width:28px;height:20px}.forum-block__item_hot .forum-block__comments-number{font-weight:700}.forum-block__link{position:absolute;top:0;left:0;z-index:3;width:100%;height:100%}.forum-block__image{width:100%;max-width:67px;margin-right:17px}.forum-block__image .picture{position:relative}.forum-block__image .picture:before{display:block;width:100%;padding-top:73.13433%;content:""}.forum-block__description{width:100%;max-width:160px;margin-right:18px;color:#27262b;font-size:14px;line-height:1.57}.forum-block__comments{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.forum-block__btn{position:relative;margin-top:10px}.forum-block__btn .btn{min-width:100%}.live-matches{position:fixed;bottom:0;left:0;z-index:10;display:none;width:100%;padding:0 16px;background-color:#fff;-webkit-transform:translateY(78%);-ms-transform:translateY(78%);transform:translateY(78%);transition:.5s ease-out}.live-matches .swiper-container,.live-matches .swiper-wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.live-matches .swiper-container{width:100%;margin:32px auto 0;padding-bottom:50px;overflow:hidden}.live-matches .swiper-slide{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:100%!important;margin-bottom:0;background-color:#fff136}.live-matches .swiper-slide .match-item__league{display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:18px;background-color:#e0d32c}.live-matches .swiper-slide .match-item__league-img{width:46px;height:46px;margin-right:30px}.live-matches .swiper-slide .match-item__league-name{font-weight:700}.live-matches .swiper-slide .match-item__league-stage{font-weight:400}.live-matches .swiper-slide .match-item__wrapp{-webkit-order:1;-ms-flex-order:1;order:1;min-height:80px}.live-matches .swiper-pagination{position:absolute;bottom:10px;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.live-matches .swiper-pagination-bullet{display:inline-block;width:8px;height:8px;background-color:#b6b7b9;border-radius:50%;transition:.3s}.live-matches .swiper-pagination-bullet:not(:last-child){margin-right:10px}.live-matches .swiper-pagination-bullet-active{background-color:#27262b}.live-matches__btn{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:20px 0;transition:.3s}.live-matches__btn:after,.live-matches__btn:before{position:absolute;top:20px;right:0;width:15px;height:2px;background-color:rgba(182,183,185,.6);-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);opacity:0;transition:.3s;content:""}.live-matches__btn:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.live-matches__btn .live{pointer-events:none}.live-matches__btn span{margin-left:15px;color:#27262b;font-weight:700;font-size:18px;line-height:1.44;pointer-events:none}.live-matches.is-active{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.live-matches.is-active .live-matches__btn{padding-top:40px}.live-matches.is-active .live-matches__btn:after,.live-matches.is-active .live-matches__btn:before{opacity:1}.live-matches.is-active .swiper-container{position:relative}.pagination{-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.pagination,.pagination__btn{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.pagination__btn{padding:5px;color:#707070;background-color:transparent;border:none}.pagination__btn svg{height:16px}.pagination__btn_prev span{margin-left:8px}.pagination__btn_next span{margin-right:8px}.pagination__btn_next svg{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.pagination__list{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.pagination__list-item{width:40px;height:40px;overflow:hidden;border-radius:50%}.pagination__list-item.current{background-color:#fff;pointer-events:none}.pagination__list-item.current a{color:#27262b}.pagination__list-link{display:block;padding:20px 16px;color:#707070;font-size:14px;line-height:0}.page-link{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:40px;height:40px;padding:10px;overflow:hidden;color:#707070;font-size:14px;background-color:transparent;border:none;border-radius:50%}.page-link_active{background-color:#fff;pointer-events:none}.our-channels{position:relative;margin-bottom:60px}.our-channels .main-title{margin-bottom:28px}.our-channels__items{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.our-channels__item,.our-channels__items{display:-webkit-flex;display:-ms-flexbox;display:flex}.our-channels__item{position:relative;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:16px;overflow:hidden;background-color:#fff;border:1px solid #efefef;transition:.3s;will-change:transform}.has-hover .our-channels__item:hover{box-shadow:0 10px 15px 0 hsla(0,0%,56.9%,.16);-webkit-transform:translateY(-2px);-ms-transform:translateY(-2px);transform:translateY(-2px)}.our-channels__item:not(:last-child){margin-bottom:9px}.our-channels__item-link{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%}.our-channels__item-img{width:48px;height:48px;margin-right:16px}.our-channels__item-img img{width:100%;height:100%}.our-channels__item-title{font-weight:500;font-size:18px;line-height:1.22}.our-channels__item-title span{font-weight:700}.our-channels__item-count{color:#707070;font-size:14px;line-height:1.21}.our-channels__counter{margin-top:25px;margin-bottom:35px}.our-channels__counter-value{margin-bottom:14px;color:#1c1b1f;font-weight:700;font-size:28px;line-height:1.21}.our-channels__counter-value span{position:relative;display:inline-block;padding:10px 9px 5px;background-color:#eeedef}.our-channels__counter-value span:not(:last-child){margin-right:4px}.our-channels__counter-value span:nth-last-child(3),.our-channels__counter-value span:nth-last-child(6){margin-left:13px}.our-channels__counter-value span:nth-last-child(3):before,.our-channels__counter-value span:nth-last-child(6):before{position:absolute;bottom:8px;left:-11px;width:4px;height:4px;background-color:#1c1b1f;content:""}.our-channels__counter-value.only-six span:nth-last-child(6):before,.our-channels__counter-value.only-three span:nth-last-child(3):before{content:none}.our-channels__counter-text{color:#1c1b1f;font-weight:700;font-size:18px;line-height:1.44}.results-block{margin-bottom:60px}.results-block__places{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.results-block__place,.results-block__places{display:-webkit-flex;display:-ms-flexbox;display:flex}.results-block__place{-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%;padding:14px 16px;background-color:#fff;border:1px solid hsla(0,0%,43.9%,.1)}.results-block__place:not(:last-child){margin-bottom:10px}.results-block__place-icon{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.results-block__place-icon img{-o-object-fit:contain;object-fit:contain;font-family:"object-fit: contain;object-position: center;";-o-object-position:center;object-position:center;width:44px;height:44px;margin-right:10px}.results-block__place-label{color:#27262b;font-weight:700;font-size:14px;line-height:1.43}.results-block__team{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.results-block__team-wrapp{text-align:right}.results-block__team-name{margin-bottom:5px;color:#27262b;font-weight:700;font-size:14px;line-height:1.43}.results-block__team-points{color:#707070;font-size:12px}.results-block__team-logo{width:40px;margin-left:24px}.results-block__team-logo img{width:100%;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;object-position: center;";-o-object-position:center;object-position:center}.content{z-index:unset}.content-block{margin-bottom:60px;color:#333;font-size:18px;line-height:1.44}.content-block h4{margin-bottom:28px;color:#000;font-weight:700;font-size:20px;line-height:1.2}.content-block p{margin-bottom:21px;color:#333;font-size:18px;line-height:1.44}.content-block a{color:#333;text-decoration:underline}.content-block img{margin:0 3px;vertical-align:middle}.content-block figure.image{margin:0 0 24px}.content-block figure.image img{width:100%}.content-block figure.image figcaption{margin-top:17px;color:#707070;font-size:12px;line-height:1.17}.content-block ul{margin-bottom:34px}.content-block ul li{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;font-size:16px}.content-block ul li:not(:last-child){margin-bottom:14px}.content-block ul img{margin-right:8px}.content-block ul b{margin-left:8px}.content-block .flag{position:relative;bottom:4px}.shared-info-block{position:fixed;top:50%;left:calc(50% - 747px);z-index:10;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;max-width:92px;margin-bottom:60px;padding:24px 0;background-color:#fff}.shared-info-block,.shared-info-block__comments{display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.shared-info-block__comments{position:relative;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding-bottom:14px;text-align:center;-webkit-filter:grayscale(1);filter:grayscale(1);transition:.5s ease}.has-hover .shared-info-block__comments:hover{-webkit-filter:grayscale(0);filter:grayscale(0)}.has-hover .shared-info-block__comments:hover span{color:#1c1b1f}.shared-info-block__comments:after{position:absolute;bottom:0;left:0;z-index:1;width:100%;height:1px;background-color:hsla(0,0%,43.9%,.1);content:""}.shared-info-block__comments span{width:100%;margin-top:7px;color:#707070;font-weight:700;font-size:14px;line-height:1.21;transition:.5s ease}.shared-info-block__socials{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding-top:10px}.shared-info-block__social{display:block;padding:10px;-webkit-filter:grayscale(1);filter:grayscale(1);transition:.5s ease}.has-hover .shared-info-block__social:hover{-webkit-filter:grayscale(0);filter:grayscale(0)}.shared-info-block__social svg{width:26px}.video-block{position:relative;width:100%;overflow:hidden}.video-block__bg{position:relative;z-index:1;transition:.4 ease;pointer-events:auto}.video-block__bg svg{position:absolute;top:50%;left:50%;z-index:1;width:40px;height:40px;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.video-block__bg:before{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;background-image:linear-gradient(180deg,rgba(40,39,44,.6),#1e1d22);content:""}.video-block__bg img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;object-position: center;";-o-object-position:center;object-position:center}.video-block__content{position:absolute;bottom:24px;left:24px;z-index:1;width:100%;max-width:450px}.video-block__content-info{margin-bottom:8px;color:#a7a7a7;font-size:14px;line-height:1.21}.video-block__content-description,.video-block__content-title{color:#fff;font-size:18px;line-height:1.44}.video-block__content-title{font-weight:700}.video-block__video{position:absolute;top:0;left:0;width:100%;height:100%}.video-block__video video{width:100%}.video-block.is-play .video-block__bg{opacity:0;pointer-events:none}.base-select{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:165px;background:#fdfdfd;border:1px solid #dbe2eb;cursor:pointer}.base-select,.base-select__wrapp{width:100%;max-width:295px}.base-select__box{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%;height:40px;padding:0 20px;color:#aab1b7;font-size:16px;line-height:22px}.base-select__box:after{position:absolute;top:15px;right:15px;display:block;width:8px;height:8px;border-right:1px solid #1c1b1f;border-bottom:1px solid #1c1b1f;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);transition:.3s;content:""}.base-select__items{position:absolute;top:calc(100% + 1px);z-index:4;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;max-height:200px;overflow-y:scroll;background-color:#fff;box-shadow:0 4px 11px rgba(8,79,131,.11)}.base-select__item,.base-select__items{display:-webkit-flex;display:-ms-flexbox;display:flex}.base-select__item{border-top:none;transition:.2s}.base-select__item:not(:last-child){border-bottom:1px solid #f5f7fa}.has-hover .base-select__item:hover{background-color:rgba(182,183,185,.1)}.base-select__item a{width:100%;padding:10px 15px;color:#333;text-decoration:none;cursor:pointer}.base-select.is-active .base-select__container,.base-select__item a{display:-webkit-flex;display:-ms-flexbox;display:flex}.base-select.is-active .base-select__box:after{-webkit-transform:rotate(225deg);-ms-transform:rotate(225deg);transform:rotate(225deg)}.base-select--disabled{border-color:#f2f4f8;pointer-events:none}.base-select--error{border-color:red}.slide-from-top_short-leave-active{transition:.2s ease-in}.slide-from-top_short-enter-active{transition:.4s ease-in}.slide-from-top_short-enter-to,.slide-from-top_short-leave{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);opacity:1}.slide-from-top_short-enter,.slide-from-top_short-leave-to{-webkit-transform:translateY(-25px);-ms-transform:translateY(-25px);transform:translateY(-25px);opacity:0}.details-match{margin-bottom:60px}.details-match__title{margin-bottom:30px;font-weight:700;font-size:20px;line-height:1.3;text-transform:uppercase}.details-match__header{-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.details-match__footer,.details-match__header{display:-webkit-flex;display:-ms-flexbox;display:flex}.details-match__footer{width:100%;min-height:40px;background-image:linear-gradient(180deg,#868af4 -122%,#7c7fdb 198%)}.details-match__footer .abios-link{margin-right:0}.details-match__footer img{margin:auto}.details-match__control,.details-match__controls{display:-webkit-flex;display:-ms-flexbox;display:flex}.details-match__control{-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;min-width:90px;min-height:50px;padding:0 14px;background-color:#dddde0;cursor:pointer;transition:.4s ease}.details-match__control span{color:#707070;font-weight:700;font-size:14px;line-height:1.43;transition:.4s ease}.details-match__control--active{background-color:#fff}.details-match__control--active span{color:#1f2021}.details-match__control:not(:last-child){margin-right:4px}.details-match__sides{margin-left:24px}.details-match__sides,.details-match__sides-wrapp{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.details-match__sides-wrapp{position:relative;margin-left:5px;padding:2px;background-color:#dddde0}.details-match__side{padding:6px 13px;cursor:pointer;transition:.4s ease}.details-match__side--active{background-color:#fff;box-shadow:0 1px 2px 0 hsla(0,0%,56.9%,.44)}.details-match__side span{color:#1f2021;font-weight:700;font-size:14px;line-height:1.43}.details-match__body{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;background-color:#fff}.details-match__body,.details-match__team{display:-webkit-flex;display:-ms-flexbox;display:flex}.details-match__team:not(:last-child){border-bottom:1px solid hsla(0,0%,43.9%,.1)}.details-match__team-wrapp{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100%;min-width:216px;max-width:216px;border-right:1px solid hsla(0,0%,43.9%,.1)}.details-match__team-icon{width:80px;height:70px;margin-bottom:21px}.details-match__team-icon img{width:100%;height:100%}.details-match__team-name{margin-bottom:10px;color:#000;font-weight:700;font-size:14px;line-height:1.21}.details-match__team-country{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;color:#707070;font-size:14px;line-height:1.21}.details-match__team-country img{width:24px;height:16px;margin-right:10px}.details-match__team_hidden{display:none}.details-match__labels{display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;padding:21px 0;background-color:#fff}.details-match__labels .details-match__team-wrapp{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;margin-right:auto;padding-left:10px;border:none}.details-match__labels .details-match__team-icon{width:30px;height:24px;margin-right:17px;margin-bottom:0}.details-match__labels .details-match__team-name{margin-bottom:0}.details-match__label{min-width:77px;color:#707070;font-weight:600;font-size:14px;line-height:1.43;text-align:center}.details-match__label:first-child{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;padding-left:18px;text-align:left}.details-match__label--sortable{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;cursor:pointer}.details-match__label--sortable>svg{width:14px;margin-left:10px;color:#dcdcdc}.details-match__players-wrapp{width:100%}.details-match__player{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:18px 0 18px 18px;background-color:#fff}.details-match__player:nth-child(odd){background-color:#f9f9f9}.details-match__player-name{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-align-items:center;-ms-flex-align:center;align-items:center;white-space:nowrap}.details-match__player-name img{margin-right:10px}.details-match__player-name a{margin-left:5px;color:#000;font-weight:700;transition:.4s ease}.has-hover .details-match__player-name a:hover{color:#f3e535}.details-match__player-name strong{margin-left:5px;color:#000;font-weight:700}.details-match__player-stat{min-width:77px;color:#000;font-size:14px;line-height:1.43;text-align:center}.details-match__player-stat--green{color:#1cae00}.details-match__player-stat--red{color:#ae0000}.comments-block{width:calc(100% + 54px);margin-right:-27px;margin-bottom:60px;margin-left:-27px;background-color:#fff}.comments-block__section{position:relative;padding:40px 27px 140px}.comments-block__avatar{-webkit-flex:0 0 40px;-ms-flex:0 0 40px;flex:0 0 40px;height:40px;margin-right:35px;overflow:hidden;border-radius:50%}.comments-block__avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.comments-block__header{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.comments-block__title{color:#1f2021;font-weight:700;font-size:20px}.comments-block__title-count{margin-left:5px;font-weight:400}.comments-block__sort{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;min-height:40px;background-color:#eeedef;border:2px solid #eeedef}.comments-block__sort-btn{padding-right:14px;padding-left:14px;color:#27262b;font-size:14px;line-height:36px;cursor:pointer;transition:.4s ease}.comments-block__sort-btn--active{background-color:#fff;pointer-events:none}.comments-block__body{margin-top:40px}.comments-block__more{position:relative;display:inline-block;margin-bottom:30px;padding-left:52px;color:#707070;font-weight:400;font-size:16px;line-height:19px}.comments-block__more:before{position:absolute;bottom:9px;left:15px;display:block;width:25px;height:25px;border-bottom:1px solid #efefef;border-left:1px solid #efefef;content:""}.comments-block__more--deep{margin-left:-45px}.comments-block__tree{padding-left:110px}.comments-block__tree .comment-item:before{position:absolute;top:58px;left:-30px;width:30px;height:1px;background-color:#efefef;content:""}.comments-block__tree .comments-block__list{position:relative}.comments-block__tree .comments-block__list:not(:last-child):before{position:absolute;top:0;left:-30px;width:1px;height:100%;background-color:#efefef;content:""}.comments-block__tree .comments-block__list:last-child:before{position:absolute;top:0;left:-30px;width:1px;height:60px;background-color:#efefef;content:""}.comments-block__tree_last .comment-item:before,.comments-block__tree_last .comments-block__list:last-child:before,.comments-block__tree_last .comments-block__list:not(:last-child):before{content:none}.comments-block__footer{position:absolute;right:0;bottom:0;left:0;z-index:5;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:100%;max-width:870px;padding:27px 27px 40px;background-color:#fff;box-shadow:0 0 10px -3px rgba(0,0,0,.25)}.comments-block__footer_fixed{position:fixed}.comments-block__footer .comment-item__avatar{margin-left:26px}.comments-block__footer-wrapp{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%}.comments-block__footer--url{margin-bottom:30px;box-shadow:none}.comments-block__login-url{position:absolute;top:0;left:0;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;color:#27262b;font-size:20px;line-height:24px;background-color:#e6e6e6;transition:.5s ease}.has-hover .comments-block__login-url:hover{background-color:#ccc}.comments-block__form{width:100%}.comments-block__field{display:block;width:100%;min-height:40px;padding:10px 100px 10px 17px;color:#27262b;font-size:14px;border:1px solid #dddde0;resize:none}.comments-block__field::-webkit-input-placeholder{color:#707070;font-size:14px}.comments-block__field::-moz-placeholder{color:#707070;font-size:14px}.comments-block__field:-ms-input-placeholder{color:#707070;font-size:14px}.comments-block__field:-moz-placeholder{color:#707070;font-size:14px}.comments-block__add-image,.comments-block__submit{position:absolute;right:80px;bottom:40px;padding:12px 10px;color:#9c9a9d;font-size:0;cursor:pointer}.comments-block__add-image svg,.comments-block__submit svg{transition:.5s ease}.has-hover .comments-block__add-image:hover,.has-hover .comments-block__submit:hover{color:#000}.comments-block__add-image{padding:12px 5px}.comments-block__add-image--disable{opacity:.5;pointer-events:none}.comments-block__submit{right:40px}.comments-block__user{position:relative;display:inline-block;margin-top:-15px;margin-bottom:10px;padding-left:75px}.comments-block__user-remove{position:absolute;top:-5px;right:-25px;padding:10px;border-radius:50%;box-shadow:0 1px 6px 0 hsla(0,0%,67.5%,.5);cursor:pointer}.comments-block__user-remove:after,.comments-block__user-remove:before{position:absolute;top:9px;left:5px;width:10px;height:2px;background-color:#000;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);content:""}.comments-block__user-remove:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.comments-block .page-link.page-link_active{background-color:#efefef}.comments-block__btn{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.comment-item{position:relative;width:100%;padding-top:20px;padding-bottom:15px;overflow:hidden;border-top:1px solid #efefef}.comment-item_without-border{border-top:none}.comment-item_with-line:after{position:absolute;top:95px;left:80px;width:1px;height:calc(100% - 95px);background-color:#efefef;content:""}.comment-item__header,.comment-item__user{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%}.comment-item__header{margin-bottom:11px}.comment-item__user{-webkit-flex:1;-ms-flex:1;flex:1;min-width:0}.comment-item__avatar{width:50px;height:50px;margin-right:20px;margin-left:15px;border-radius:50%}.comment-item__avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.comment-item__info{-webkit-flex:1;-ms-flex:1;flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.comment-item__likes-btn{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.comment-item__likes-btn .icon-like{cursor:pointer;opacity:.2;transition:.5s ease}.has-hover .comment-item__likes-btn .icon-like:hover{opacity:1}.comment-item__likes-btn .icon-dislike{width:14px;height:16px;cursor:pointer;opacity:.2;transition:.5s ease}.has-hover .comment-item__likes-btn .icon-dislike:hover{opacity:1}.comment-item__likes-btn .svg-wrapp{padding:7px 13px;font-size:0;line-height:0}.comment-item__likes-btn .svg-wrapp.is-disable svg{opacity:1}.comment-item__likes-btn .svg-wrapp svg{font-size:0;line-height:0}.comment-item__counter{color:#707070;font-size:14px;line-height:20px}.comment-item__link{color:#1e1d21;font-weight:700;font-size:18px;transition:.4s ease}.comment-item__likes{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.comment-item__likes span{margin-bottom:-3px;margin-left:5px;color:#707070;font-size:12px}.comment-item__date{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;margin-left:auto;padding-left:8px;color:#707070;font-size:14px;white-space:nowrap}.comment-item__date span:first-child{margin-right:5px}.comment-item__body{padding-left:125px}.comment-item__comment{margin:0;color:#27262b;font-size:14px;font-family:Navi,arial,sans-serif;line-height:20px;white-space:break-spaces}.comment-item__comment a{color:#27262b;text-decoration:underline;transition:.4s ease}.has-hover .comment-item__comment a:hover{color:#f3e535}.comment-item__comment-wrapp{max-height:10000px;margin-bottom:20px}.comment-item__comment-wrapp_cut-height{max-height:120px;overflow:hidden}.comment-item__show-more{padding:0;color:#707070;font-size:14px;line-height:20px;background-color:transparent;border:none;transition:.5s}.has-hover .comment-item__show-more:hover{color:#27262b}.comment-item__answer{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-left:auto;background-color:transparent;border:none}.comment-item__answer span{margin-top:3px;color:#707070;font-size:14px;transition:.5s}.has-hover .comment-item__answer span:hover{color:#27262b}.comment-item__answer svg{margin-right:5px}.comment-item__image{max-width:150px;max-height:150px;margin-top:15px;cursor:pointer}.comment-item__image img{width:100%;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;object-position: center;";-o-object-position:center;object-position:center}.comment-item__topic{display:-webkit-flex;display:-ms-flexbox;display:flex;margin-top:10px}.comment-item__topic a,.comment-item__topic span{color:#9c9a9d;font-size:14px}.comment-item__topic a.comment-item__topic-text,.comment-item__topic span.comment-item__topic-text{margin-left:3px;color:#1e1d23;transition:.5s}.has-hover .comment-item__topic a:hover{color:#fdd50b}.comment-item__popup{max-width:90%;max-height:70%}.comment-item__popup img{max-width:100%}.comment-item__popup-overlay{position:fixed;top:0;left:0;z-index:50;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;background-color:rgba(0,0,0,.7)}.comment-item__popup-close{position:absolute;top:40px;right:40px;padding:20px;cursor:pointer}.comment-item__popup-close:after,.comment-item__popup-close:before{position:absolute;z-index:1;width:20px;height:2px;background-color:#fff;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);content:""}.comment-item__popup-close:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.comment-item_notifications{padding-right:20px;padding-left:20px}.comment-item--unread{background-color:#fffeea}.comment-item.without-answer .comment-item__answer{display:none}.comment-item.without-answer .comment-item__likes-btn{pointer-events:none}.file-upload{position:relative;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.file-upload__input{display:none}.file-upload__label{display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;border-radius:50px;cursor:pointer}.file-upload__label svg{margin-right:10px}.file-upload__list{position:absolute;bottom:-7px;left:-35px;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.file-upload__item{display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.file-upload__item-img{position:relative}.file-upload__item-img img{width:30px;height:30px}.file-upload__item-remove{position:absolute;top:-3px;right:-10px;width:20px;height:20px;background-color:#fff;border-radius:50%;box-shadow:0 1px 6px 0 hsla(0,0%,67.5%,.5);cursor:pointer}.file-upload__item-remove:after,.file-upload__item-remove:before{position:absolute;top:9px;left:4px;width:12px;height:2px;background-color:#707070;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);content:""}.file-upload__item-remove:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}[data-page=old-publications] .comments-block{width:100%;margin-right:0;margin-left:0}.loader-container{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;margin-bottom:60px}.loader-container .loader{height:7rem;width:7rem;position:relative}.loader-container .loader .square{height:50%;width:50%;position:absolute;background:#fff136}.loader-container .loader .one{top:0;left:0;-webkit-animation:animate_one 5s ease infinite;animation:animate_one 5s ease infinite;background:#fff136}.loader-container .loader .two{top:50%;left:50%;-webkit-animation:animate_two 5s ease infinite;animation:animate_two 5s ease infinite;background:#1c1b1f}@-webkit-keyframes animate_one{0%,to{top:0;left:0;width:50%;height:50%}12.5%{left:0;width:100%}25%{top:0;left:50%;width:50%;height:50%}37.5%{top:0;height:100%}50%{top:50%;left:50%;width:50%;height:50%}62.5%{left:0;width:100%}75%{top:50%;width:50%;height:50%}87.5%{top:0;left:0;height:100%}}@keyframes animate_one{0%,to{top:0;left:0;width:50%;height:50%}12.5%{left:0;width:100%}25%{top:0;left:50%;width:50%;height:50%}37.5%{top:0;height:100%}50%{top:50%;left:50%;width:50%;height:50%}62.5%{left:0;width:100%}75%{top:50%;width:50%;height:50%}87.5%{top:0;left:0;height:100%}}@-webkit-keyframes animate_two{0%,to{top:50%;left:50%;width:50%;height:50%}12.5%{left:0;width:100%}25%{top:50%;width:50%;height:50%}37.5%{top:0;height:100%}50%{left:0;width:50%;height:50%}62.5%{top:0;left:0;width:100%}75%{left:50%;width:50%;height:50%}87.5%{top:0;height:100%}}@keyframes animate_two{0%,to{top:50%;left:50%;width:50%;height:50%}12.5%{left:0;width:100%}25%{top:50%;width:50%;height:50%}37.5%{top:0;height:100%}50%{left:0;width:50%;height:50%}62.5%{top:0;left:0;width:100%}75%{left:50%;width:50%;height:50%}87.5%{top:0;height:100%}}.bracket-double-16 .bracket-class-icon{width:22px}.hero{display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;height:415px;background-color:#1e1d23}.hero .container{padding:0}.hero__wrapper{height:100%}.hero__poster,.hero__wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex}.hero__poster{position:relative;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;width:50%;height:50%;padding:22px 19px;overflow:hidden}.hero__poster--ads:before{content:none!important}.hero__poster:nth-child(2){-webkit-order:3;-ms-flex-order:3;order:3}.hero__poster:nth-child(4){-webkit-order:4;-ms-flex-order:4;order:4}.hero__poster:before{z-index:1;background-color:rgba(28,27,31,.5);content:""}.hero__poster-link,.hero__poster:before{position:absolute;top:0;left:0;width:100%;height:100%}.hero__poster-link{z-index:2}.hero__poster-img{position:absolute;top:0;left:0;z-index:0;width:100%;height:100%;transition:.7s;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;object-position: center;";-o-object-position:center;object-position:center}.hero__poster-content{position:relative;z-index:1;color:#fff}.hero__poster-title{margin-bottom:14px;font-weight:700;font-size:18px;line-height:1.22}.hero__poster-info{color:#a7a7a7;font-size:12px;line-height:14px}.hero__poster-info-name,.hero__poster-info-type{font-weight:700}.hero__poster-info-name:after,.hero__poster-info-type:after{content:" / "}.hero__poster .btn{margin-top:40px;padding:11px 26px}.hero__poster_big{height:100%}.hero__poster_big .hero__poster-title{font-size:28px;line-height:1.28}.hero__poster_big .hero__poster-description{margin-bottom:13px;font-size:18px;line-height:1.5}.hero__poster .news-item__comments{position:absolute;right:0;bottom:0}.hero__poster .news-item__comments>svg{stroke:#fff}.has-hover .hero__poster:hover .hero__poster-img{-webkit-transform:scale(1.03);-ms-transform:scale(1.03);transform:scale(1.03)}.has-hover .hero__poster:hover .btn{background-color:#f3e535}.hero .swiper-container{position:relative;width:50%;height:100%;overflow:hidden}.hero .swiper-pagination{position:absolute;top:16px;left:18px}.hero .swiper-pagination-bullet{display:inline-block;width:8px;height:8px;background-color:hsla(0,0%,100%,.5);border-radius:50%;transition:.3s}.hero .swiper-pagination-bullet:not(:last-child){margin-right:8px}.hero .swiper-pagination-bullet-active{background-color:#fff}.hero .swiper-wrapper{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;height:100%}.hero .swiper-wrapper,.news-item{display:-webkit-flex;display:-ms-flexbox;display:flex}.news-item{position:relative;overflow:hidden;transition:.3s;will-change:transform}.news-item--no-cut{margin-right:0!important;margin-bottom:0!important}.has-hover .news-item--no-cut:hover{box-shadow:none!important;-webkit-transform:none!important;-ms-transform:none!important;transform:none!important}.has-hover .news-item:hover{box-shadow:0 10px 15px 0 hsla(0,0%,56.9%,.16);-webkit-transform:translateY(-2px);-ms-transform:translateY(-2px);transform:translateY(-2px)}.news-item:not(:last-child){margin-bottom:30px}.news-item__link{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%}.news-item__img{position:relative;z-index:0;width:100%;min-width:274px;max-width:274px;min-height:100%}.news-item__img:before{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;background-color:rgba(26,25,29,.5);content:""}.news-item__img_big{height:100%;position:relative}.news-item__img_big:before{display:block;width:100%;padding-top:72.9927%;content:""}.news-item__img_small{position:absolute;top:50%;left:50%;z-index:1;width:auto;max-height:105px;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.news-item__icon{position:absolute;top:15px;left:12px;z-index:1;width:22px;height:22px;color:#eeedef}.news-item__content{position:relative;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;padding:25px 25px 10px;background-color:#fff}.news-item__info{margin-bottom:15px;color:#707070;font-size:12px;line-height:14px}.news-item__info-name,.news-item__info-type{position:relative;z-index:1;display:inline-block;color:#707070;font-weight:700;text-decoration:none;transition:.3s}.has-hover .news-item__info-name:hover,.has-hover .news-item__info-type:hover{color:#27262b}.news-item__info-name:after,.news-item__info-type:after{content:" / "}.news-item__info-type{pointer-events:none}.news-item__info-date{display:inline-block}.news-item__info-name{cursor:pointer}.news-item__title{margin-bottom:15px;color:#27262b;font-weight:700;font-size:28px;line-height:1.28}.news-item__description{margin-bottom:25px;font-size:14px;line-height:1.42}.news-item__comments{position:relative;z-index:1;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;min-height:16px;text-decoration:none}.news-item__comments span{margin-left:7px;color:#707070;font-weight:700;font-size:12px;line-height:14px;transition:.3s}.has-hover .news-item__comments:hover span{color:#27262b}.news-item .icon-pin{position:absolute;top:15px;right:15px;display:none;color:#000}.news-item .icon-hot-comments{display:none}.news-item.pined .icon-pin{display:block}.news-item.hot .icon-comments{display:none}.news-item.hot .icon-hot-comments{display:block;-webkit-animation:pulse-medium 1.2s linear infinite;animation:pulse-medium 1.2s linear infinite}.news-item_multiple{display:none;overflow:hidden}@-webkit-keyframes pulse-medium{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.3);transform:scale(1.3)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes pulse-medium{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.3);transform:scale(1.3)}to{-webkit-transform:scale(1);transform:scale(1)}}.main-news{margin-bottom:60px;padding:0}.main-news,.main-news .swiper-container,.main-news .swiper-wrapper{position:relative}.main-news .swiper-pagination{display:none;font-size:18px;line-height:26px}.main-news__title{margin-bottom:25px;color:#27262b;font-weight:700;font-size:20px;line-height:26px}.main-news__btn{margin-top:21px}.main-news__btn .btn{min-width:100%}.main-brand{position:relative;display:block;width:100%;overflow:hidden;line-height:0}.main-brand__wrapp{margin-bottom:60px}.main-brand>img{width:100%;height:auto}.main-brand .picture{position:relative}.main-brand .picture:before{display:block;width:100%;padding-top:33.86503%;content:""}.main-brand video{width:100%}.card-item{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;background-color:#fff;transition:box-shadow .3s,-webkit-transform .3s;transition:transform .3s,box-shadow .3s;transition:transform .3s,box-shadow .3s,-webkit-transform .3s}.has-hover .card-item:hover{box-shadow:0 10px 15px 0 hsla(0,0%,56.9%,.16);-webkit-transform:translateY(-2px);-ms-transform:translateY(-2px);transform:translateY(-2px)}.card-item__link{position:absolute;top:0;left:0;z-index:3;width:100%;height:100%}.card-item__img,.card-item__img .picture{position:relative}.card-item__img .picture:before{display:block;width:100%;padding-top:66.41221%;content:""}.card-item__svg{position:absolute;bottom:-26px;left:50%;z-index:1;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:52px;height:52px;background-color:#fff;border:4px solid #eeedef;border-radius:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.card-item__svg img{width:70%}.card-item__content{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100%;padding:50px 20px 20px}.card-item__date{margin-bottom:15px;overflow:hidden;color:#707070;font-size:14px;line-height:1.21;white-space:nowrap;text-overflow:ellipsis}.card-item__title{margin-bottom:auto;color:#27262b;font-weight:700;font-size:18px;line-height:1.44}.card-item__info{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-top:26px;padding-top:18px;border-top:1px solid #eeedef}.card-item__info:before{position:absolute;bottom:0;left:0;z-index:0;width:19px;height:19px;background-color:#2a292e;border-radius:50%;content:""}.card-item__info svg{position:relative}.card-item__info-price{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;overflow:hidden}.card-item__info-price>svg{right:-.5px;bottom:-.5px;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.card-item__info-price-text{display:inline-block;margin-left:9px;overflow:hidden;color:#27262b;font-weight:700;font-size:14px;line-height:1.5;text-overflow:ellipsis}.card-item__info-type{color:#707070;font-size:14px;line-height:1.5}.main-tournament{position:relative;margin-bottom:60px;padding:0;overflow:hidden}.main-tournament .swiper-container,.main-tournament .swiper-wrapper{position:relative;width:100%}.main-tournament .swiper-wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex}.main-tournament .swiper-pagination{display:none;font-size:18px;line-height:26px}.main-tournament .swiper-pagination-current,.main-tournament .swiper-pagination-total{display:inline-block}.main-tournament .swiper-pagination-current:before,.main-tournament .swiper-pagination-total:before{content:"0"}.main-tournament .swiper-scrollbar{height:5px;margin-top:20px;background-color:#dddde0}.main-tournament .swiper-scrollbar-drag{height:5px;background-color:#707070;transition:width 0s,background-color .3s!important}.has-hover .main-tournament .swiper-scrollbar:hover .swiper-scrollbar-drag{background-color:#27262b}.main-tournament .swiper-slide{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.main-tournament__item{width:33.3333%}.main-tournament__btn{margin-top:21px}.main-tournament__btn .btn{min-width:100%}.video-item{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:calc(50% - 5px);min-height:224px;margin-bottom:19px;padding:22px 20px 18px;overflow:hidden;aspect-ratio:16/9;cursor:pointer;transition:.3s}.has-hover .video-item:hover{box-shadow:0 6px 12px rgba(28,27,31,.5);-webkit-transform:translateY(-2px);-ms-transform:translateY(-2px);transform:translateY(-2px)}.has-hover .video-item:hover .video-item__img:before{background-color:rgba(35,33,40,.5)}.video-item .icon-play-btn{position:absolute;top:50%;left:50%;z-index:3;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.video-item__body{position:relative;z-index:3;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;max-height:180px;color:#fff}.video-item__body,.video-item__header{display:-webkit-flex;display:-ms-flexbox;display:flex}.video-item__header{position:absolute;top:0;left:0;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%}.video-item__header,.video-item__label{-webkit-align-items:center;-ms-flex-align:center;align-items:center}.video-item__label{display:-webkit-flex;display:-ms-flexbox;display:flex}.video-item__label-text{font-weight:700;font-size:16px;line-height:1.19}.video-item__label img{width:22px;height:22px;margin-right:10px}.video-item__type{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.video-item__type-text{margin-left:3px;color:#f6341e;font-weight:700;font-size:14px}.video-item__type>svg{max-width:30px;max-height:30px}.video-item__link{z-index:5}.video-item__img,.video-item__img:before,.video-item__link{position:absolute;top:0;left:0;width:100%;height:100%}.video-item__img:before{z-index:2;background-color:rgba(35,33,40,.87);transition:.3s;content:""}.video-item__img .picture{position:static!important;position:relative}.video-item__img .picture:before{display:block;width:100%;padding-top:55.58313%;content:""}.video-item__content{width:100%;max-width:250px}.video-item__content-date{margin-bottom:11px;color:#a7a7a7;font-size:12px;line-height:1.17}.video-item__content-title{display:-webkit-box;overflow:hidden;font-weight:700;font-size:18px;line-height:1.44;-webkit-box-orient:vertical;-webkit-line-clamp:2}.video-item__content-title_live{color:#fff136}.video-popup{position:fixed;top:0;left:0;z-index:111;width:100vw;height:100vh;background:rgba(0,0,0,.7)}.video-popup__overlay{position:relative;width:100%;height:100%;overflow:auto}.video-popup__video{position:relative;height:0;padding-bottom:56.25%;background-color:#1a191d}.video-popup__video--no-stream{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;height:137.75%;padding-bottom:0;color:#fff;font-size:40px;background:#000}.video-popup__player{position:absolute;top:36%;left:50%;width:60%;height:45%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.video-popup__player-close{position:absolute;top:-10px;right:-45px;padding:20px;cursor:pointer}.video-popup__player-close:after,.video-popup__player-close:before{position:absolute;top:20px;right:10px;z-index:3;width:24px;height:2px;background-color:#dddde0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);content:""}.video-popup__player-close:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.video-popup__player iframe{position:absolute;top:0;left:0;display:block;width:100%;height:100%;border:none}.video-popup__info{padding:20px 20px 10px;color:#fff;background-color:#333}.video-popup__info-wrapp{-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.video-popup__info-rates,.video-popup__info-wrapp{display:-webkit-flex;display:-ms-flexbox;display:flex}.video-popup__info-rates{margin-left:auto}.video-popup__info-likes{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding-bottom:10px;border-bottom:2px solid #909090}.video-popup__info-likes svg{width:20px;height:20px;margin-right:6px;fill:#909090}.video-popup__info-likes span{margin-top:3px}.video-popup__info-likes:first-child{margin-right:40px}.video-popup__info-dislike,.video-popup__info-like{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-right:30px}.video-popup__info-dislike{margin-right:0}.video-popup__info-dislike span{margin-top:-2px}.video-popup__info-title{display:inline-block;margin-bottom:20px;color:#fff;font-size:20px;line-height:28px}.video-popup__info-views{font-size:14px;line-height:22px}.video-popup__info-views span:nth-child(2){margin-right:3px;margin-left:3px}.main-broadcasts{margin-bottom:60px}.main-broadcasts,.main-broadcasts__wrapp{position:relative}.main-broadcasts__body{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.main-broadcasts__btn{margin-top:21px}.main-broadcasts__btn .btn{min-width:100%}.banner-block{margin-bottom:60px}.teams-block{position:relative;padding:60px 0 0;background-color:#eeedef}.teams-block .main-title{margin-bottom:22px}.teams-block__container{margin-bottom:60px}.teams-block__controls{position:relative;top:0;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-bottom:14px;overflow-x:auto}.teams-block__controls-shadow-left{left:0;background:#fff;background:linear-gradient(90deg,#eeedef,hsla(0,0%,100%,0))}.teams-block__controls-shadow-left,.teams-block__controls-shadow-right{position:absolute;top:0;z-index:3;width:30px;height:100%;pointer-events:none}.teams-block__controls-shadow-right{right:0;background:#fff;background:linear-gradient(90deg,hsla(0,0%,100%,0),#eeedef)}.teams-block__controls-wrapp{position:-webkit-sticky;position:sticky;top:0;z-index:11;width:100%;max-width:1220px;margin:0 auto 60px;background-color:#eeedef}.teams-block__control{position:relative;width:100%;min-width:128px;max-width:128px;overflow:hidden;cursor:pointer;transition:.5s ease}.teams-block__control:not(:last-child){margin-right:25px}.teams-block__control-img{position:relative}.teams-block__control-img:before{position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;background-color:rgba(26,25,29,.6);transition:.5s ease;content:""}.teams-block__control-img:after{position:absolute;top:0;left:0;z-index:3;width:100%;height:100%;background:url(../img/teams/pattern.png);background-size:contain;content:""}.teams-block__control-img .picture{transition:.5s ease;position:relative}.teams-block__control-img .picture:before{display:block;width:100%;padding-top:48.4375%;content:""}.teams-block__control-icon{position:absolute;top:50%;left:50%;z-index:4;width:40px;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.teams-block__control.is-active .teams-block__control-img:before{background-color:rgba(255,241,54,.8)}.teams-block__control.is-active .teams-block__control-img:after{background:url(../img/teams/pattern-orange.png);background-size:contain}.teams-block__control.is-active .teams-block__control-icon{-webkit-filter:invert(1);filter:invert(1)}.has-hover .teams-block__control:hover{box-shadow:0 5px 15px 0 #fff093}.teams-block__body{position:relative}.teams-block__body:not(:last-child){margin-bottom:60px}.teams-block__body .swiper-button{position:relative;width:40px;height:40px;border:1px solid #707070;border-radius:50%;cursor:pointer;transition:.5s ease}.teams-block__body .swiper-button-wrapper{display:none;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;max-width:110px;margin:20px auto 0}.teams-block__body .swiper-button svg{position:absolute;top:50%;left:50%;color:#707070;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);transition:.5s ease}.teams-block__body .swiper-button-next{left:auto}.teams-block__body .swiper-button-next svg{-webkit-transform:translate(-50%,-50%) rotate(180deg);-ms-transform:translate(-50%,-50%) rotate(180deg);transform:translate(-50%,-50%) rotate(180deg)}.teams-block__body.no-slider .block-team__slider-controls{display:none}.teams-block__body.no-slider .block-team__player-length{display:block}.block-team{position:relative;padding:90px 98px 72px;overflow:hidden;background-color:#1a191d}.block-team:after,.block-team:before{position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;background:url(../img/teams/team-pattern.png);background-size:100%;content:""}.block-team:after{background:url(../img/teams/line-pattern.png);background-size:contain}.block-team__img{z-index:0}.block-team__img,.block-team__img:before{position:absolute;top:0;left:0;width:100%;height:100%}.block-team__img:before{z-index:3;background-image:linear-gradient(180deg,rgba(40,39,44,.1),rgba(30,29,34,.9));content:""}.block-team__img:after{position:absolute;bottom:0;left:50%;z-index:4;width:440px;height:27px;background:url(../img/teams/title-pattern.png);background-size:cover;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);content:""}.block-team__img .picture{position:relative}.block-team__img .picture:before{display:block;width:100%;padding-top:55.04587%;content:""}.block-team__header{z-index:5;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:30px}.block-team__header,.block-team__header-right{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.block-team__header-right:before{position:absolute;top:-25px;right:-100px;z-index:-1;width:464px;height:90px;background:url(../img/teams/title-pattern.png);background-size:contain;content:""}.block-team__name{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.block-team__name-text{margin-right:9px;color:#fff136;font-weight:700;font-size:40px;line-height:1;text-transform:uppercase}.block-team__name-icon{max-height:26px}.block-team__game{max-width:500px;color:#fff;font-weight:700;font-size:60px;line-height:1.2}.block-team__slogan{margin-right:15px;color:#fff;font-weight:700;font-size:18px;line-height:1.44}.block-team__slider{position:relative;z-index:5}.block-team__social{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;gap:20px;margin-top:20px}.block-team__social .team-info__social{z-index:6;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.block-team__social .team-info__social svg{max-width:30px;max-height:30px;margin-right:10px}.block-team__social .team-info__social span{color:#f5f5f3;font-weight:700;font-size:18px;line-height:1.44}.block-team .swiper-container{position:relative;width:100%;padding-top:12px;overflow:hidden}.block-team .swiper-wrapper{position:relative;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex}.block-team .block-team__slider-controls{position:absolute;top:50%;left:-60px;width:40px;height:40px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;transition:.5s ease;-webkit-user-select:none;-ms-user-select:none;-moz-user-select:none;user-select:none}.block-team .block-team__slider-controls svg{position:absolute;top:50%;left:50%;color:#707070;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);transition:.5s ease}.block-team .block-team__slider-controls_next{right:-60px;left:auto}.block-team .block-team__slider-controls_next svg{-webkit-transform:translate(-50%,-50%) rotate(180deg);-ms-transform:translate(-50%,-50%) rotate(180deg);transform:translate(-50%,-50%) rotate(180deg)}.block-team .block-team__slider-controls.swiper-button-disabled{opacity:.7;pointer-events:none}.has-hover .block-team .block-team__slider-controls:hover{border-color:#fff}.has-hover .block-team .block-team__slider-controls:hover svg{color:#fff}.block-team__player{position:relative;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;overflow:hidden;transition:.5s ease}.block-team__player:before{position:absolute;bottom:0;left:0;width:100%;height:calc(100% - 38px);background-color:#2a292e;content:""}.block-team__player-link{position:absolute;top:0;left:0;z-index:5;width:100%;height:100%}.block-team__player-img{position:relative}.block-team__player-img:before{position:absolute;bottom:0;left:0;width:100%;height:calc(100% - 38px);background:url(../img/teams/playerbg.png);background-size:cover;content:""}.block-team__player-img:after{position:absolute;bottom:0;left:0;width:148px;height:101px;background:url(../img/teams/player-pattern.png);background-size:contain;content:""}.block-team__player-img .picture{width:100%;max-width:158px;margin:0 auto;position:relative}.block-team__player-img .picture:before{display:block;width:100%;padding-top:100%;content:""}.block-team__player-content{position:relative;padding:24px 10px 20px;text-align:center}.block-team__player-nickname{display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-bottom:7px;color:#fff;font-weight:700;font-size:18px;line-height:1.44}.block-team__player-nickname svg{width:18px;margin-right:8px}.block-team__player-name{margin-bottom:8px;color:#fff136;font-weight:600;font-size:12px;line-height:1.17}.block-team__player-info{display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;color:#707070;font-weight:600;font-size:12px;line-height:1.17}.block-team__player-info-rang{margin-left:5px}.block-team__player-info-rang:before{margin-right:5px;content:"|"}.block-team__player-length{display:none;color:#707070;font-weight:700;font-size:21px;line-height:1.48;text-align:center;-webkit-text-orientation:mixed;text-orientation:mixed;-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);opacity:.44;-webkit-writing-mode:vertical-rl;-ms-writing-mode:tb-rl;writing-mode:vertical-rl}.block-team__player-flag{margin-right:8px}.has-hover .block-team__player:hover{-webkit-transform:translateY(-10px);-ms-transform:translateY(-10px);transform:translateY(-10px)}.error-block{position:relative;background-color:#1e1d23}.error-block img{display:block;width:100%}.error-block__content{position:absolute;bottom:140px;left:0;z-index:1;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%;color:#fff}.error-block__text{margin-bottom:33px;font-size:18px}[data-page=error] .content-wrapper{padding-bottom:0}.search-section{position:relative;padding:40px 0;background-color:#dddde0}.search-section__form{display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:20px;overflow:hidden;background-color:#fff;box-shadow:0 1px 5px 0 hsla(0,0%,56.9%,.16)}.search-section__btn{margin-left:16px;padding:15px 10px 15px 0;background-color:transparent;border:none;outline:none}.search-section__input{width:100%;padding:22px 14px 22px 0;font-size:18px;line-height:1.11;border:none;outline:none}.search-section__result-wrapp{margin-bottom:30px}.search-section__result-text{margin-bottom:15px;color:#707070;font-weight:500;font-size:18px;line-height:2}.search-section__result-title{margin-bottom:17px;color:#27262b;font-weight:700;font-size:14px;line-height:1.21}.search-section__result-item{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;min-height:67px;padding:10px 16px;overflow:hidden;background-color:#fff;transition:.3s}.search-section__result-item:not(:last-child){margin-bottom:18px}.search-section__result-item .search-word{margin-right:3px;color:#27262b;font-weight:700;font-size:18px}.search-section__result-item-link{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%}.has-hover .search-section__result-item:hover{box-shadow:0 10px 15px 0 hsla(0,0%,56.9%,.16);-webkit-transform:translateY(-2px);-ms-transform:translateY(-2px);transform:translateY(-2px)}.search-section__pagination{margin-top:40px}.players-result img{width:18px;margin-right:8px}.players-result__team{font-size:18px;line-height:1.11}.players-result__team:before{content:"/ "}.players-result .search-section__result-item-text{font-size:18px;line-height:1.11}.tournament-result{display:-webkit-flex;display:-ms-flexbox;display:flex}.tournament-result__date{margin-right:11px}.tournament-result__img{width:100%;max-width:41px;max-height:41px;margin-right:11px;-o-object-fit:contain;object-fit:contain;font-family:"object-fit: contain;object-position: center;";-o-object-position:center;object-position:center}.tournament-result__header{display:-webkit-flex;display:-ms-flexbox;display:flex;color:#707070;font-size:14px;line-height:1.43}.tournament-result__header svg{width:18px;margin:0 8px}.tournament-result__body{color:#27262b;font-size:18px;line-height:2}.news-result{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.news-result,.news-result__header{display:-webkit-flex;display:-ms-flexbox;display:flex}.news-result__header{position:relative;z-index:1;margin-bottom:6px;color:#707070;font-size:12px;line-height:1.17}.news-result__game{margin-right:3px;color:#707070;font-weight:700;transition:.5s}.has-hover .news-result__game:hover{color:#1c1b1f}.news-result__date:before{content:" / "}.news-result__title{margin-bottom:10px;color:#27262b;font-size:18px;line-height:1.11}.news-result__body{color:#27262b;font-size:14px;line-height:1.43}.hero-team{position:relative;min-height:400px;padding:70px 20px 20px}.hero-team__img{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}.hero-team__img .picture{position:relative}.hero-team__img .picture:before{display:block;width:100%;padding-top:31.92338%;content:""}.hero-team .block-team__header{padding:0 110px}.hero-team .block-team__slogan{margin-right:0;font-size:28px}.hero-team__slider{display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;max-width:986px;margin:0 auto;overflow:hidden}.hero-team__slider .swiper-container{width:100%}.hero-team__slider .swiper-wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.hero-team__slider-wrapp{position:relative;z-index:5}.hero-team__slider-controls{position:absolute;top:50%;left:50px;width:40px;height:40px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;transition:.5s ease;-webkit-user-select:none;-ms-user-select:none;-moz-user-select:none;user-select:none}.hero-team__slider-controls svg{position:absolute;top:50%;left:50%;color:#707070;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);transition:.5s ease}.hero-team__slider-controls_next{right:50px;left:auto}.hero-team__slider-controls_next svg{-webkit-transform:translate(-50%,-50%) rotate(180deg);-ms-transform:translate(-50%,-50%) rotate(180deg);transform:translate(-50%,-50%) rotate(180deg)}.hero-team__slider-controls.swiper-button-disabled{border:none;opacity:0;pointer-events:none}.has-hover .hero-team__slider-controls:hover{border-color:#fff}.has-hover .hero-team__slider-controls:hover svg{color:#fff}.hero-team .block-team__social{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;gap:20px;margin-top:100px;margin-bottom:30px}.hero-team .block-team__social .team-info__social{z-index:6;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.hero-team .block-team__social .team-info__social svg{max-width:30px;max-height:30px;margin-right:10px}.hero-team .block-team__social .team-info__social span{color:#f5f5f3;font-weight:700;font-size:18px;line-height:1.44}.hero-team__item{position:relative;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:100%;max-width:128px;overflow:hidden}.hero-team__item:not(:last-child){margin-right:15px}.hero-team__item-img:before{z-index:2;background-color:rgba(26,25,29,.6)}.hero-team__item-img:after,.hero-team__item-img:before{position:absolute;top:0;left:0;width:100%;height:100%;content:""}.hero-team__item-img:after{z-index:3;background:url(../img/teams/pattern.png);background-size:contain}.hero-team__item-img .picture{position:relative}.hero-team__item-img .picture:before{display:block;width:100%;padding-top:114.84375%;content:""}.hero-team__item svg{position:absolute;top:50%;left:50%;z-index:1;z-index:2;color:#eadec3;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.player-card{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;min-height:340px;overflow:hidden;background-color:#2a292e}.player-card:not(:last-child){margin-bottom:20px}.player-card__player{position:relative;width:100%;max-width:160px;background-color:#1a191d}.player-card__player-link{position:absolute;top:0;left:0;z-index:5;width:100%;height:100%}.player-card__player-img{position:relative;width:100%;min-height:180px;padding-top:20px}.player-card__player-img:before{position:absolute;bottom:0;left:50%;z-index:2;width:124px;height:86px;background:url(../img/teams/player-pattern.png);background-size:cover;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);content:""}.player-card__player-img .picture{z-index:2;position:relative}.player-card__player-img .picture:before{display:block;width:100%;padding-top:100%;content:""}.player-card__player-bg{position:absolute;top:0;left:0;width:100%;height:100%;background:url(../img/teams/player-card-bg.png);background-size:cover}.player-card__player-bg:before{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;background-color:rgba(42,41,46,.54);content:""}.player-card__player-content{padding:29px 15px;text-align:center;background-color:#1c1b1f}.player-card__player-nickname{display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-bottom:7px;color:#fff;font-weight:700;font-size:18px;line-height:1.44}.player-card__player-nickname svg{width:18px;margin-right:8px}.player-card__player-name{margin-bottom:8px;color:#fff136;font-weight:600;font-size:12px;line-height:1.17}.player-card__player-info{display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;color:#707070;font-weight:600;font-size:12px;line-height:1.17}.player-card__player-info-position{margin-left:5px}.player-card__player-info-position:before{margin-right:5px;content:"|"}.player-card__devices{width:100%;margin-bottom:-6px;padding:20px;-webkit-column-count:2;-moz-column-count:2;column-count:2;background-color:#2a292e}.player-card__device{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:75px;min-height:75px;padding-right:20px;page-break-inside:avoid}.player-card__device-wrapp{display:inline-block;margin-bottom:6px;padding:7px;overflow:hidden;transition:.5s ease}.has-hover .player-card__device-wrapp:hover{background-color:#212024}.player-card__device-wrapp.nolink{pointer-events:none}.player-card__device-img{width:87px;height:74px;margin-right:9px;padding:5px;overflow:hidden;background-color:#fff}.player-card__device-img img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;font-family:"object-fit: contain;object-position: center;";-o-object-position:center;object-position:center}.player-card__device-info{color:#dddde0;font-size:14px;line-height:1.86}.player-card__device-model{color:#eeedef;font-weight:700}.command-structure{margin-bottom:60px}.player-info{position:relative;padding:35px 45px 0 100px;overflow:hidden;background-color:#1a191d}.player-info__bg{position:absolute;top:0;left:0;width:100%;min-height:600px;background:url(../img/teams/team-pattern.png);background-size:100%}.player-info__bg:before{background-image:linear-gradient(180deg,rgba(40,39,44,.6),#1e1d22)}.player-info__bg:after,.player-info__bg:before{position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;content:""}.player-info__bg:after{background:url(../img/teams/line-pattern.png);background-size:contain}.player-info__bg-img .picture{position:relative}.player-info__bg-img .picture:before{display:block;width:100%;padding-top:50%;content:""}.player-info__body{position:relative;z-index:2;margin-bottom:24px}.player-info__body,.player-info__photo{display:-webkit-flex;display:-ms-flexbox;display:flex}.player-info__photo{-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end;min-width:415px;margin-right:10px}.player-info__photo .picture{width:100%;position:relative}.player-info__photo .picture:before{display:block;width:100%;padding-top:125.78313%;content:""}.player-info__nickname{margin-bottom:25px;color:#fff;font-weight:700;font-size:60px;line-height:1.2}.player-info__name{margin-bottom:8px;color:#fff;font-weight:700;font-size:28px;line-height:1}.player-info__details{margin-bottom:36px;color:#b6b7b9;font-weight:600;font-size:14px;line-height:1.21}.player-info__details-country{margin-right:24px}.player-info__details svg{width:18px;height:12px;margin-right:9px}.player-info__participant{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-bottom:25px}.player-info__participant-game{color:#fff136;font-weight:700;font-size:14px;line-height:1.2}.player-info__participant-info{color:#b6b7b9;font-size:12px;line-height:1.67}.player-info__participant img{width:26px;height:26px;margin-right:8px}.player-info__participant-btn{margin-left:25px}.player-info__career{margin-bottom:25px;color:#b6b7b9;font-size:14px;line-height:1.43}.player-info__social,.player-info__socials{display:-webkit-flex;display:-ms-flexbox;display:flex}.player-info__social{-webkit-align-items:center;-ms-flex-align:center;align-items:center}.player-info__social:not(:last-child){margin-right:30px}.player-info__social svg{max-width:30px;max-height:30px;margin-right:10px}.player-info__social span{color:#f5f5f3;font-weight:700;font-size:18px;line-height:1.44}.player-info .hero-team__slider-wrapp{margin-bottom:25px;margin-left:-50px}.player-info .hero-team__slider-controls{left:0}.player-info .hero-team__slider-controls_next{right:0;left:auto}.player-recommendation{width:100%;margin-bottom:60px}.player-recommendation__video{position:relative;min-height:457px;opacity:0;pointer-events:none}.player-recommendation__video iframe{position:absolute;top:0;left:0;display:block;width:100%;height:100%;border:none;outline:none}.player-recommendation__video-wrapp{position:relative;margin-bottom:24px;overflow:hidden}.player-recommendation__video-bg{position:absolute;top:0;left:0;z-index:0;width:100%;height:100%;cursor:pointer}.player-recommendation__video-bg:before{position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;background-image:linear-gradient(180deg,rgba(40,39,44,0),#1e1d22);content:""}.player-recommendation__video-bg .picture{position:relative}.player-recommendation__video-bg .picture:before{display:block;width:100%;padding-top:56.98529%;content:""}.player-recommendation__video-bg svg{position:absolute;top:50%;left:50%;z-index:3;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);transition:.5s ease}.player-recommendation__video-bg.hidden{z-index:-2;opacity:0}.has-hover .player-recommendation__video-bg:hover svg{-webkit-transform:translate(-50%,-50%) scale(1.3);-ms-transform:translate(-50%,-50%) scale(1.3);transform:translate(-50%,-50%) scale(1.3)}.player-recommendation__video-info{position:absolute;bottom:0;left:0;z-index:4;padding:24px}.player-recommendation__video-subtitle{margin-bottom:12px;color:#a7a7a7;font-size:14px;line-height:1.21}.player-recommendation__video-name{color:#fff;font-size:18px;line-height:1.44}.player-recommendation__video.visible{opacity:1;pointer-events:auto}.player-recommendation__devices{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:-20px}.player-recommendation__device{position:relative;width:calc(50% - 8px);margin-bottom:20px;overflow:hidden;background-color:#fff;transition:.5s ease}.player-recommendation__device-link{position:absolute;top:0;left:0;z-index:2;width:100%;height:100%}.has-hover .player-recommendation__device:hover{box-shadow:0 5px 15px 0 hsla(0,0%,56.9%,.16)}.player-recommendation__device-img .picture{position:relative}.player-recommendation__device-img .picture:before{display:block;width:100%;padding-top:47.5%;content:""}.player-recommendation__device-img .picture__picture img{-o-object-fit:contain;object-fit:contain}.player-recommendation__device-content{padding:0 30px 43px}.player-recommendation__device-subtitle{margin-bottom:9px;color:#707070;font-size:12px;line-height:1.17}.player-recommendation__device-title{margin-bottom:26px;color:#27262b;font-weight:700;font-size:20px;line-height:1.2}.player-recommendation__device-description{width:100%;max-width:280px;color:#27262b;font-size:14px;line-height:1.43}.player-recommendation__device.large{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%}.player-recommendation__device.large .player-recommendation__device-img{width:calc(50% - 8px)}.player-recommendation__device.large .player-recommendation__device-img .picture{position:relative}.player-recommendation__device.large .player-recommendation__device-img .picture:before{display:block;width:100%;padding-top:100%;content:""}.player-recommendation__device.large .player-recommendation__device-content{width:calc(50% - 8px);padding:34px 15px 34px 25px}.player-recommendation__device.large .player-recommendation__device-description{max-width:100%}.player-recommendation__device.large .player-recommendation__device-btn{position:relative;z-index:2;margin-top:30px}.player-last-photo{margin-bottom:60px}.player-last-photo__header{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-bottom:20px}.player-last-photo__header .main-title{margin-bottom:0}.player-last-photo__header svg{margin-left:10px}.player-last-photo__body{padding:22px 22px 15px;overflow:hidden;background-color:#fff}.player-last-photo__item{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:80%;margin-right:18px}.player-last-photo__item-img .picture{position:relative}.player-last-photo__item-img .picture:before{display:block;width:100%;padding-top:105.76132%;content:""}.player-last-photo .swiper-container{width:100%;overflow:hidden}.player-last-photo .swiper-wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.player-last-photo .swiper-pagination{display:none;font-size:14px;line-height:26px}.player-last-photo .swiper-scrollbar{height:5px;margin-top:10px;background-color:#e6e6e6}.player-last-photo .swiper-scrollbar-drag{height:5px;background-color:#707070;transition:width 0s,background-color .3s!important}.player-in-social{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-bottom:20px}.player-in-social .main-title{margin-bottom:0}.player-in-social__links{margin-left:auto}.player-in-social__link,.player-in-social__links{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.player-in-social__link{padding:8px 11px}.player-in-social__link:not(:last-child){margin-right:12px}.player-in-social__link svg{height:14px;margin-right:4px}.player-in-social__link span{color:#fff;font-weight:700;font-size:14px;text-transform:uppercase}.player-tournament{position:relative;margin-bottom:60px}.player-tournament__quote{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:12px;overflow:hidden;background-color:#fff}.player-tournament__quote-content{padding:42px 36px}.player-tournament__quote-content .icon-quote{margin-bottom:49px}.player-tournament__quote-img{min-width:383px}.player-tournament__quote-img .picture{position:relative}.player-tournament__quote-img .picture:before{display:block;width:100%;padding-top:93.99478%;content:""}.player-tournament__quote-description{width:100%;max-width:350px;color:#464646;font-size:18px;line-height:1.44}.player-tournament__quote-info{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-top:55px}.player-tournament__quote-info .btn{margin-right:26px}.player-tournament__quote-fund{color:#27262b;font-size:20px;line-height:1.05}.player-tournament__quote-fund span{font-weight:700}.player-tournament__devices{padding:0}.player-tournament__devices-grid{display:-ms-grid;display:grid;grid-gap:15px;-ms-grid-columns:1fr 1fr 1fr;grid-template-columns:1fr 1fr 1fr}.player-tournament__device{overflow:hidden;background-color:#fff}.player-tournament__device-img{height:142px;margin-bottom:40px;padding-top:12px}.player-tournament__device-img img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;font-family:"object-fit: contain;object-position: center;";-o-object-position:center;object-position:center}.player-tournament__device-content{padding:0 20px 30px}.player-tournament__device-subtitle{margin-bottom:16px;color:#707070;font-size:12px;line-height:1.17}.player-tournament__device-title{margin-bottom:10px;color:#27262b;font-weight:700;font-size:18px;line-height:1.33}.player-tournament__device-description{color:#27262b;font-size:14px;line-height:1.43}.player-tournament__device-btn{margin-top:36px}.player-tournament .swiper-container{width:100%}.player-tournament .swiper-wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.player-tournament .swiper-slide{width:33.333333%}.player-tournament .swiper-slide:not(:last-child){margin-right:13px}.player-random{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;margin-bottom:60px}.player-random .player-tournament{width:100%;margin:20px 0 60px}.player-random .player-recommendation__devices{width:100%}.player-random .player-recommendation__device.large .player-recommendation__device-img .picture:before{padding-top:90%}.teammates-block{position:relative;margin-bottom:60px}.teammates-block__body{margin-top:-10px}.teammates-block .swiper-container{width:100%;padding-top:10px;overflow:hidden}.teammates-block .swiper-wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.teammates-block .swiper-scrollbar{height:5px;margin-top:20px;background-color:#e6e6e6}.teammates-block .swiper-scrollbar-drag{height:5px;background-color:#707070;transition:width 0s,background-color .3s!important}.teammates-block .block-team__player-img .picture{max-width:147px}.teammates-block .block-team__player-img:before,.teammates-block .block-team__player:before{height:100%}.teammates-block .block-team__player-img:after{left:16px;width:calc(100% - 32px)}.player-videos{margin-bottom:60px;padding:0}.player-videos .btn{min-width:100%;margin-top:20px}.player-stream-chat{position:relative}.player-stream-chat__body{display:-webkit-flex;display:-ms-flexbox;display:flex;min-height:540px}.player-stream-chat__video{width:100%;max-width:870px}.player-stream-chat__chat{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.player-stream-chat iframe{width:100%;height:100%;border:none;outline:none}.about-hero{min-height:300px;overflow:hidden}.about-hero,.about-hero .container{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex}.about-hero .container{z-index:2;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;min-height:100%}.about-hero__img,.about-hero__img:before{position:absolute;top:0;left:0;width:100%;height:100%}.about-hero__img:before{z-index:2;background-image:linear-gradient(180deg,rgba(28,27,31,.58),#242424);content:""}.about-hero__img .picture{position:relative}.about-hero__img .picture:before{display:block;width:100%;padding-top:23.94254%;content:""}.about-hero__body{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;min-height:100%}.about-hero__title{margin-top:-35px;margin-bottom:8px;color:#eeedef;font-weight:700;font-size:50px;line-height:1.21}.about-hero__bg-title{position:absolute;max-width:100%;pointer-events:none}.about-hero__bg-title>img{max-width:100%}.about-hero__description{margin-bottom:8px;color:#eeedef;font-size:18px;line-height:1.21}.about-hero__controls{position:absolute;bottom:0;left:0;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100%;white-space:nowrap}.about-hero__control{position:relative;padding:0 50px 32px;color:#eeedef;font-weight:700;font-size:14px;line-height:1.43;text-transform:uppercase}.about-hero__control:after{position:absolute;bottom:0;left:0;width:100%;height:2px;background-color:#fff136;opacity:0;transition:.5s ease;content:""}.about-hero__control.is-active{color:#fff136}.about-hero__control.is-active:after,.has-hover .about-hero__control:hover:after{opacity:1}.about-staff{position:relative;padding:60px 0 0;background-color:#eeedef}.about-staff__section{margin-bottom:36px}.about-staff__items{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:calc(100% + 12px);margin:0 -6px}.about-staff__item,.about-staff__items{display:-webkit-flex;display:-ms-flexbox;display:flex}.about-staff__item{position:relative;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:calc(20% - 12px);margin:0 6px 24px;overflow:hidden}.about-staff__item-img .picture{position:relative}.about-staff__item-img .picture:before{display:block;width:100%;padding-top:78.26087%;content:""}.about-staff__item-content{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:26px;background-color:#2a292e}.about-staff__item-nickname{margin-bottom:8px;color:#fff;font-weight:700;font-size:18px;line-height:1.44}.about-staff__item-name{margin-bottom:20px;color:#b6b7b9;font-size:14px;line-height:1.43}.about-staff__item-position{margin:auto 0;color:#fff136;font-size:14px;line-height:1.43;text-align:center}.about-staff__item-socials{display:-webkit-flex;display:-ms-flexbox;display:flex;margin-top:0}.about-staff__item-social{padding:8px;line-height:0}.about-staff__item-hover{position:absolute;top:0;left:0;z-index:2;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;padding:15px;background-color:#f3e535;opacity:0;transition:.2s linear;pointer-events:none}.about-staff__item-hover .about-staff__item-name,.about-staff__item-hover .about-staff__item-nickname{color:#2a292e}.has-hover .about-staff__item:hover .about-staff__item-hover{z-index:2;opacity:1;pointer-events:auto}.about-staff__item.is-active .about-staff__item-hover{z-index:2;padding:15px;opacity:1;pointer-events:auto}.about-presskit{position:relative;padding:60px 0;background-color:#eeedef}.about-presskit__body{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:calc(100% + 25px);margin:0 -12.5px}.about-presskit__item{position:relative;width:calc(25% - 25px);margin:0 12.5px;text-align:center;transition:.3s ease;will-change:transform}.about-presskit__item-link{position:absolute;top:0;left:0;z-index:3;width:100%;height:100%}.about-presskit__item-img{margin-bottom:27px;overflow:hidden}.about-presskit__item-img .picture{position:relative}.about-presskit__item-img .picture:before{display:block;width:100%;padding-top:118.50534%;content:""}.about-presskit__item-title{margin-bottom:10px;color:#27262b;font-weight:700;font-size:20px;line-height:1.8;-webkit-line-clamp:1}.about-presskit__item-description,.about-presskit__item-title{display:-webkit-box;overflow:hidden;word-wrap:break-word;-webkit-box-orient:vertical}.about-presskit__item-description{color:#707070;font-size:12px;line-height:1.67;-webkit-line-clamp:2}.has-hover .about-presskit__item:hover{-webkit-transform:translateY(-3px);-ms-transform:translateY(-3px);transform:translateY(-3px)}.about-history{position:relative;padding:60px 0;background-color:#000}.about-history__body{width:100%}.about-history__wrapp{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.about-history__wrapper{position:relative;-webkit-align-self:center;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;max-width:690px}.about-history__wrapper:before{position:absolute;top:-20px;left:0;width:47px;height:3px;background-color:#fff136;content:""}.about-history__aside{position:-webkit-sticky;position:sticky;top:20px;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-right:50px;will-change:transform}.about-history__aside-range{position:relative;width:10px;margin-right:20px}.about-history__aside-range:before{position:absolute;top:0;left:calc(50% - 1px);width:1px;height:100%;background-color:#27262b;content:""}.about-history__aside-slider{position:absolute;z-index:1;width:10px;height:49px;overflow:hidden;background-color:#b6b7b9}.about-history__aside-years{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.about-history__aside-year{min-width:82px;padding:6px 0;overflow:hidden;color:#707070;font-weight:500;font-size:20px;text-align:center;border:1px solid #27262b}.about-history__aside-year:not(:last-child){margin-bottom:16px}.about-history__aside-year.is-active{color:#fff;background-color:#27262b;pointer-events:none}.about-history__item{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;margin-bottom:60px;padding-top:20px}.about-history__item-date{margin-bottom:18px;color:#fff136;font-weight:700;font-size:20px}.about-history__item-title{margin-bottom:20px;color:#fff;font-weight:700;font-size:28px;line-height:1.21;word-wrap:break-word}.about-history__item-description{margin-bottom:60px;color:#999c9e;font-size:16px;line-height:1.5;word-break:break-word}.about-history__item-img .picture{position:relative}.about-history__item-img .picture:before{display:block;width:100%;padding-top:50.86294%;content:""}.about-tournament{margin-bottom:60px}.about-tournament__body{margin-top:15px;padding:10px 20px;border:1px solid hsla(0,0%,43.9%,.1)}.about-tournament__body h3{margin-top:20px;margin-bottom:18px;font-weight:700;font-size:18px;line-height:1.44}.about-tournament__body p{margin-bottom:16px;color:#27262b;font-weight:600;font-size:14px;line-height:1.43}.about-tournament__body ul{list-style-type:disc;list-style-position:inside}.about-tournament__body ol{list-style-type:decimal;list-style-position:inside}.about-tournament__body ol ul,.about-tournament__body ul ul{list-style-type:circle;list-style-position:inside;margin-left:10px}.about-tournament__body ol ol,.about-tournament__body ul ol{list-style-type:lower-latin;list-style-position:inside;margin-left:10px}[data-page=about-partners]{background-color:#eeedef}.about-partners-banner{padding-top:60px;padding-bottom:60px}.about-partners-banner__content{position:relative;width:100%}.about-partners-banner__title{margin-bottom:20px;font-weight:700;font-size:28px;line-height:1.21}.about-partners-banner__description{font-size:18px;line-height:1.22}.about-title-partner,.about-title-partner__body,.about-title-partner__img{position:relative;overflow:hidden}.about-title-partner__img{width:100%;height:381px}.about-title-partner__img>.picture{position:absolute;top:0;left:0;width:100%;height:100%;position:relative}.about-title-partner__img>.picture:before{display:block;width:100%;padding-top:314.96063%;content:""}.about-title-partner__content{padding:34px 89px 36px 54px;background-color:#fff}.about-title-partner__title{margin-bottom:20px;color:#27262b;font-weight:700;font-size:20px;line-height:1.2}.about-title-partner__description{margin-bottom:30px;font-size:18px;line-height:1.22}.about-general-partners{margin-top:60px}.about-general-partners__body{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.about-general-partners__item{display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;overflow:hidden;background-color:#fff}.about-general-partners__item:not(:last-child){margin-bottom:20px}.about-general-partners__item-bg{position:relative;-webkit-flex:1 0 50%;-ms-flex:1 0 50%;flex:1 0 50%}.about-general-partners__item-bg .picture{position:absolute;width:100%;height:100%;position:relative}.about-general-partners__item-bg .picture:before{display:block;width:100%;padding-top:63.5%;content:""}.about-general-partners__item-content{-webkit-flex:1 0 50%;-ms-flex:1 0 50%;flex:1 0 50%;padding:42px 61px}.about-general-partners__item:nth-child(2n) .about-general-partners__item-content{padding:41px 54px}.about-general-partners__item-title{margin-bottom:25px;color:#27262b;font-weight:700;font-size:20px;line-height:1.2}.about-general-partners__item-description{margin-bottom:30px;color:#27262b;font-size:18px;line-height:1.22}.about-general-partners__item_reverse{-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.about-partners{position:relative;margin-top:60px}.about-partners__body{position:relative;display:-ms-grid;display:grid;-ms-grid-columns:(minmax(355px,1fr))[auto-fit];grid-template-columns:repeat(auto-fit,minmax(355px,1fr));-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;padding-bottom:80px;-webkit-column-gap:20px;-moz-column-gap:20px;column-gap:20px;row-gap:18px}.about-partners__item{position:relative;z-index:1;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;min-width:250px}.about-partners__item-bg{width:100%;background-color:#f7f7f7}.about-partners__item-bg .picture{position:relative}.about-partners__item-bg .picture:before{display:block;width:100%;padding-top:51.81347%;content:""}.about-partners__item-wrapper{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;min-height:100%;background-color:#fff}.about-partners__item-wrapper:before{position:absolute;top:0;left:0;z-index:0;display:block;width:100%;height:100%;box-shadow:0 4px 20px rgba(0,0,0,.13);opacity:0;transition:opacity .2s ease-out;content:"";pointer-events:none}.about-partners__item-content{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:35px 22px 28px}.about-partners__item-title{margin-bottom:20px;color:#27262b;font-weight:700;font-size:20px;line-height:1.5}.about-partners__item-description{min-height:40.04px;max-height:40.04px;margin-bottom:30px;overflow:hidden;color:#27262b;font-size:14px;line-height:1.43}.about-partners__item-nav{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%;max-width:100%}.about-partners__item-nav>.btn{min-width:inherit}.about-partners__item-expand{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:42px;min-width:42px;padding:0;background-color:#707070}.about-partners__item-expand:hover{background-color:#9c9a9d!important}.about-partners__item-expand[aria-expanded=true]{background-color:#707070}.about-partners__item-expand[aria-expanded=true] .icon-arrow--expand{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.about-partners__item-expand[aria-expanded=true]:hover{background-color:#9c9a9d}.about-partners__item-expand>*{pointer-events:none}.about-partners__item-expand .icon-arrow--expand{width:9.14px;height:15.23px;margin-bottom:-2px;color:#fff;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);transition:-webkit-transform .1s ease-in;transition:transform .1s ease-in;transition:transform .1s ease-in,-webkit-transform .1s ease-in;fill:#fff}.about-partners__item--expanded{z-index:2}.about-partners__item--expanded>.about-partners__item-wrapper{position:absolute}.about-partners__item--expanded .about-partners__item-wrapper:before,.about-partners__item:focus .about-partners__item-wrapper:before,.about-partners__item:hover .about-partners__item-wrapper:before{opacity:1}.about-partners__item--expanded .about-partners__item-description{max-height:100%}.about-partners__item_reverse{-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.about-partners-bottom{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;color:#fff;background-color:#000;place-content:center}.about-partners-bottom>.container{position:absolute}.about-partners-bottom__bg{z-index:0;width:auto;height:100%;overflow:hidden;line-height:0;pointer-events:none}.about-partners-bottom__bg>.about-partners-bottom__bg-content{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.about-partners-bottom__bg>video{max-width:100%;height:auto}.about-partners-bottom__content{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;max-width:100%}.about-partners-bottom__title{margin-bottom:24px;font-weight:700;font-size:20px;text-align:center;text-transform:uppercase}.about-partners-bottom .about-partners-bottom__link{min-width:inherit}.about-contacts{padding:60px 0;background-color:#eeedef}.about-contacts__title{margin-bottom:11px;color:#27262b;font-weight:700;font-size:20px;line-height:1.3}.about-contacts__description{margin-bottom:30px;color:#27262b;font-size:14px;line-height:1.43}.about-contacts__row{display:-webkit-flex;display:-ms-flexbox;display:flex}.about-contacts__info{color:#707070;font-size:14px;line-height:1.43}.about-contacts .base-select{max-width:100%;background-color:#fff;border:none}.about-contacts .base-select__box{color:#707070}.about-contacts .base-select__items{border:1px solid #c6c6c6}.about-contacts .base-select__wrapp{width:27.8%;max-width:100%}.about-contacts .base-select__wrapp--error .base-select{border:1px solid red!important}.about-contacts .form-button{display:inline-block;min-width:100px;padding:12px 19px;color:#fff;font-size:14px;line-height:1.43;text-transform:uppercase;background-color:#707070;cursor:pointer}.about-contacts .form-button__wrapp{margin-bottom:30px}.about-contacts .form-button--is-disabled{opacity:.5;pointer-events:none}.about-contacts__overlay{position:fixed;top:0;left:0;z-index:123;width:100vw;height:100vh;background-color:rgba(0,0,0,.7)}.about-contacts__popup{position:absolute;top:50%;left:50%;z-index:1;width:286px;min-height:195px;padding:42px 17px 17px;text-align:center;background-color:#fff;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.about-contacts__popup-icon{position:absolute;top:-20px;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.about-contacts__popup-title{margin-bottom:10px;color:#27262b;font-weight:700;font-size:20px}.about-contacts__popup-description{width:100%;max-width:185px;margin:0 auto 20px;color:#27262b;font-size:14px}.about-contacts__popup-btn{display:inline-block;padding:11px 16px;color:#27262b;font-weight:600;font-size:14px;background-color:#fff136;cursor:pointer;transition:.4s ease}.has-hover .about-contacts__popup-btn:hover{background-color:#f3e535}.form-group{width:100%;margin-bottom:11px}.form-group:not(:last-child){margin-right:14px}.form-group input,.form-group textarea{width:100%;height:42px;padding:0 18px;color:#1c1b1f;font-size:14px;line-height:1.36;background-color:#fff;border:none;outline:none}.form-group input::-webkit-input-placeholder,.form-group textarea::-webkit-input-placeholder{color:#707070;font-size:14px;line-height:1.36}.form-group input::-moz-placeholder,.form-group textarea::-moz-placeholder{color:#707070;font-size:14px;line-height:1.36}.form-group input:-ms-input-placeholder,.form-group textarea:-ms-input-placeholder{color:#707070;font-size:14px;line-height:1.36}.form-group input:-moz-placeholder,.form-group textarea:-moz-placeholder{color:#707070;font-size:14px;line-height:1.36}.form-group textarea{height:251px;padding-top:12px;resize:none}.form-group.small{width:27.8%}.form-group.large{width:56.8%}.form-group--error input,.form-group--error textarea{border:1px solid red}.form-checkbox{position:relative;margin-bottom:10px;cursor:pointer}.form-checkbox,.form-checkbox__wrapp{display:-webkit-flex;display:-ms-flexbox;display:flex}.has-hover .form-checkbox:hover .form-checkbox__icon>rect:first-child{stroke-width:2px}.has-hover .form-checkbox:hover .form-checkbox_light .form-checkbox__icon>rect:last-child{fill:hsla(0,0%,50.2%,.3)}.has-hover .form-checkbox:hover .form-checkbox_dark .form-checkbox__icon>rect:last-child{fill:rgba(0,0,0,.3)}.form-checkbox__label{-webkit-flex:1;-ms-flex:1;flex:1;padding-left:20px;color:#707070;font-size:14px;line-height:1.36;vertical-align:middle}.form-checkbox__label p{color:#1c1b1f;font-size:17px;line-height:24px}.form-checkbox__label p a{text-decoration:underline}.form-checkbox__icon{position:relative;width:18px;height:18px;vertical-align:middle;border:2px solid #707070;transition:.3s ease}.form-checkbox__icon:before{position:absolute;top:1px;left:4px;width:6px;height:10px;border-right:2px solid #fff;border-bottom:2px solid #fff;-webkit-transform:skewY(0deg) rotate(45deg);-ms-transform:skewY(0deg) rotate(45deg);transform:skewY(0deg) rotate(45deg);opacity:0;transition:.3s ease;content:""}.form-checkbox__icon_checked{background-color:#707070;border-color:#707070}.form-checkbox__icon_checked:before{opacity:1}.has-hover .form-checkbox--checked:hover .form-checkbox__icon>rect:first-child{stroke-width:1px}.visually-hidden{display:none}[data-page=about-partners],[data-page=about-presskit]{z-index:1}.tournament-list,.tournament-section{position:relative;margin-bottom:60px}.tournament-section .swiper-container{width:100%}.tournament-section .swiper-wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:calc(100% + 16px);margin:0 -8px -16px}.tournament-section .swiper-slide{width:calc(33.3333% - 16px);margin:0 8px 16px}.tournament-section .swiper-pagination{position:absolute;top:-3px;right:0;display:none;color:#27262b;font-size:18px;line-height:1.44}.tournament-section__btn{margin-top:20px}.tournament-section__btn .btn{min-width:100%}.tournament-section__info-text{font-size:16px}.category-block__tabs{padding-bottom:14px;overflow-x:auto}.category-block__tabs,.category-block__tabs-wrapp{display:-webkit-flex;display:-ms-flexbox;display:flex}.category-block__tabs-wrapp{-webkit-align-items:center;-ms-flex-align:center;align-items:center;min-height:60px;margin-bottom:60px}.category-block__tabs-wrapp .base-select{max-width:180px;margin-right:10px;margin-left:auto;border-color:#eeedef}.category-block__tabs-wrapp .base-select .base-select__box{color:#1e1d23;font-size:14px;background-color:#eeedef}.category-block__tab{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:18px;color:#1c1b1f;white-space:nowrap;background-color:#fff;border-right:1px solid #eeedef;cursor:pointer;transition:.5s ease}.category-block__tab-link{line-height:0}.category-block__tab img{width:24px;height:24px}.category-block__tab span{line-height:24px}.category-block__tab_active{background-color:#fff794;pointer-events:none}.has-hover .category-block__tab:hover{background-color:#dddde0}[data-page=match-list] .match-list-vue-block .match-item__league{background-color:initial}.news-list{margin-bottom:60px}.media-section{margin-top:60px}.media-section--on-air{margin-bottom:-19px}.media-section__items{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.media-section__btn .btn{min-width:100%}.media-list,.media-list--is-single{margin-bottom:60px}.media-list--is-single .video-item+.video-item{margin-top:60px}[data-page=all-replays] .main-broadcasts+:not(.main-broadcasts),[data-page=all-videos] .main-broadcasts+:not(.main-broadcasts),[data-page=media] .main-broadcasts+:not(.main-broadcasts){margin-top:40px}.tournament-hero{margin-bottom:60px;overflow:hidden}.tournament-hero img{position:absolute;display:block;height:100%}.tournament-hero__image{position:relative;width:100%;height:150px}.tournament-hero__image .picture:before{padding-top:150px}.tournament-hero__tournament-img{display:none}.tournament-hero__tournament-game{position:absolute;bottom:-26px;left:20px;z-index:1;width:52px;height:52px;background-color:#fff;border:4px solid #eeedef;border-radius:50%}.tournament-hero__tournament-game img{position:absolute;top:50%;left:50%;width:30px;height:30px;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.tournament-hero__content{padding:40px 21px 20px;background-color:#fff}.tournament-hero__content-header{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-bottom:19px}.tournament-hero__content-date{display:-webkit-flex;display:-ms-flexbox;display:flex;margin-top:10px;color:#707070;font-size:14px;line-height:1.21}.tournament-hero__content-place{margin-left:20px}.tournament-hero__content-place svg{width:18px;height:12px;margin-right:5px}.tournament-hero__content-description{color:#27262b;font-size:14px;line-height:1.43}.tournament-hero__title{color:#27262b;font-weight:700;font-size:28px}.tournament-hero__title-info{position:relative;top:4px;display:inline-block;margin-top:2px;padding:8px 9px 6px 11px;overflow:hidden;color:#1f2021;font-weight:600;font-size:12px;line-height:1.17;white-space:nowrap;background-color:#fff794}.tournament-hero__prize{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-left:auto;padding-left:25px;border-left:1px solid #eeedef}.tournament-hero__prize:before{position:absolute;bottom:3px;left:26px;z-index:0;width:28px;height:28px;overflow:hidden;background-color:#27262b;border-radius:50%;content:""}.tournament-hero__prize svg{position:relative;width:30px;height:34px;margin-right:14px}.tournament-hero__prize_mobile{display:none}.tournament-hero__sum{color:#1f2021;font-weight:700;font-size:12px;line-height:1.5}.tournament-hero__type{color:#707070;font-size:14px;line-height:1.36}.tournament-hero__controls{background-color:#fff;border-top:1px solid #eeedef;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.tournament-hero__control,.tournament-hero__controls{display:-webkit-flex;display:-ms-flexbox;display:flex}.tournament-hero__control{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:20px 0;color:#707070;font-weight:700;font-size:14px;transition:.3s ease}.tournament-hero__control.is-active{border-bottom:2px solid #27262b}.has-hover .tournament-hero__control:hover,.tournament-hero__control.is-active{color:#27262b;background-color:#eeedef}.participants{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:calc(100% + 9px);margin:0 -4.5px}.participants .swiper-container{width:100%;overflow:hidden}.participants .swiper-wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%}.participants .swiper-pagination{position:absolute;top:-55px;right:0;z-index:1;color:#27262b;font-weight:600;font-size:18px;line-height:1.44}.participants__item{position:relative;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:calc(16.6666% - 9px);min-height:178px;margin-right:9px;margin-bottom:10px;padding:35px 0 14px;overflow:hidden;background-color:#fff}.participants__item,.participants__item-img{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.participants__item-img{width:100%;height:100%}.participants__item-img img{width:100%;min-width:75px;max-width:75px;height:100%;max-height:80px;-o-object-fit:contain;object-fit:contain;font-family:"object-fit: contain;object-position: center;";-o-object-position:center;object-position:center}.participants__item-team{width:100%;margin-top:auto;padding:0 13px;color:#000;font-weight:600;font-size:14px;line-height:1.21;text-align:center}.participants__item-team .mobile-icon{display:none}.participants__item-team .mobile-icon img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;font-family:"object-fit: contain;object-position: center;";-o-object-position:center;object-position:center}.participants__item-teammates{position:absolute;top:0;left:0;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;height:calc(100% - 40px);margin-bottom:0;padding-top:5px;overflow-y:auto;border-bottom:1px solid #eeedef;opacity:0;transition:.3s;counter-reset:list;pointer-events:none}.participants__item-teammates,.participants__item-teammates li{display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;background-color:#fff}.participants__item-teammates li{position:relative;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-bottom:0!important;padding:3px 0 3px 3px;font-size:14px!important}.participants__item-teammates li:nth-child(2n){background-color:#f9f9f9}.participants__item-teammates .fade-enter-active,.participants__item-teammates .fade-leave-active{transition:opacity .1s}.participants__item-teammates .fade-enter,.participants__item-teammates .fade-leave-to{opacity:0}.participants__item-country{width:18px;margin-right:7px}.participants__item-country img{width:18px;height:12px;-o-object-fit:cover;object-fit:cover}.has-hover .participants__item:hover .participants__item-teammates{opacity:1;pointer-events:auto}.tournament-participants{margin-bottom:60px}.tournament-matches{position:relative}.tournament-matches__history{margin:40px 0}.tournament-matches__history .matches__body{margin-bottom:20px}.tournament-matches__btn .btn{width:100%}.tournament-matches__title{margin-bottom:15px;font-weight:700;font-size:20px;line-height:1.3}.tournament-matches .live{display:none}.tournament-matches .matches__header{-webkit-align-items:center;-ms-flex-align:center;align-items:center}.tournament-matches .match-item_live .live{display:-webkit-flex;display:-ms-flexbox;display:flex;margin-right:76px}.tournament-matches.publication-matches,.tournament-matches.publication-matches:before{background-color:transparent}.tournament-matches.publication-matches .match-item{padding-left:10px;background-color:#fff}.tournament-matches.show-game .match-item{padding-left:0}.tournament-matches.show-game .match-item .match-item__game{display:-webkit-flex;display:-ms-flexbox;display:flex}[data-page=tournament-matches] .match-item_live:first-child .match-item__league,[data-page=tournament-overview] .match-item_live:first-child .match-item__league{background-color:transparent}.tournament-groups{position:relative;margin-bottom:60px}.tournament-groups__title{margin-bottom:20px;color:#000;font-weight:700;font-size:20px;line-height:1.2}.tournament-groups__list{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:38px}.tournament-groups__list,.tournament-groups__table{display:-webkit-flex;display:-ms-flexbox;display:flex}.tournament-groups__table{position:relative;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:calc(50% - 7.5px);margin-bottom:22px;background-color:#fff}.tournament-groups__table-header{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:15px 20px}.tournament-groups__table-header-label{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;color:#000;font-weight:700;font-size:18px;line-height:1.22}.tournament-groups__table-header-col{width:36px;padding:5px 0;color:#707070;font-weight:700;font-size:14px;line-height:1.43;text-align:center}.tournament-groups__table-team{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:8px 20px;color:#27262b;font-size:14px;line-height:1.43}.tournament-groups__table-team-icon{margin-right:9px}.tournament-groups__table-team-icon img{max-width:20px;max-height:20px}.tournament-groups__table-team-label{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.tournament-groups__table-team-col{width:36px;padding:5px 0;color:#27262b;font-size:14px;line-height:1.43;text-align:center}.tournament-groups__table-btn{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:15px 0;color:#27262b;font-size:14px;line-height:1.43;border-top:1px solid #f5f5f3;cursor:pointer;transition:.3s}.tournament-groups__table-btn span{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex}.tournament-groups__table-btn span:after{position:relative;top:5px;width:6px;height:6px;margin-left:10px;border-right:2px solid #000;border-bottom:2px solid #000;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);transition:.3s;content:""}.tournament-groups__table-btn.is-active{background-color:#fff794}.tournament-groups__table-btn.is-active span:after{-webkit-transform:rotate(225deg);-ms-transform:rotate(225deg);transform:rotate(225deg)}.tournament-groups__matches{position:absolute;top:100%;z-index:16;display:none;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;max-height:255px;padding:12px 15px 0;overflow-y:auto;background-color:#fff}.tournament-groups__matches.is-show{position:relative;top:0;display:-webkit-flex;display:-ms-flexbox;display:flex;border-bottom:18px solid #fff}.tournament-groups__match{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:15px 0 10px;background-color:#eeedef}.tournament-groups__match:not(:last-child){margin-bottom:5px}.tournament-groups__match-date{margin-bottom:11px;color:#707070;font-weight:700;font-size:12px;line-height:1.17;text-align:center}.tournament-groups__match-opponents{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding-right:15px;padding-left:15px}.tournament-groups__match-result{min-width:30px;margin:0 8px;color:#27262b;font-size:14px;text-align:center}.tournament-groups__match-result+.tournament-groups__match-opponent{-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.tournament-groups__match-opponent{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;width:calc(50% - 15px)}.tournament-groups__match-opponent-icon{margin-right:10px}.tournament-groups__match-opponent-icon img{width:20px;max-height:22px}.tournament-groups__match-opponent-name{color:#27262b;font-weight:700;font-size:14px}.tournament-groups__information{display:-webkit-flex;display:-ms-flexbox;display:flex;background-color:#fff}.tournament-groups__information-item{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:22px 0;line-height:1.2;text-align:center}.tournament-groups__information-item:not(:last-child){border-right:1px solid #eeedef}.tournament-groups__information-item span{position:relative;padding-left:18px;color:#27262b;font-size:12px}.tournament-groups__information-item-icon{width:10px;height:10px;background-color:currentColor;border-radius:50%}.tournament-play-off{position:relative;margin-bottom:60px;padding:30px 20px;background-color:#fff}.tournament-play-off__body{display:-webkit-flex;display:-ms-flexbox;display:flex;overflow-x:auto;cursor:-webkit-grab;cursor:grab}.tournament-play-off__body::-webkit-scrollbar{height:5px}.tournament-play-off__body::-webkit-scrollbar-track{box-shadow:inset 0 0 6px rgba(0,0,0,.2)}.tournament-play-off__body::-webkit-scrollbar-thumb{background-color:#a9a9a9}.round-grid{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex}.round-grid.grandfinal{height:100%;margin-right:30px}.round-grid.grandfinal .round-grid__round-match{top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.round-grid.grandfinal .round-grid__round-match:before{position:absolute;top:calc(50% - 18px);left:-20px;width:20px;height:1px;background-color:hsla(0,0%,43.9%,.1);content:""}.round-grid.grandfinal .round-grid__round-match:after{content:none}.round-grid-wrapp{position:relative}.round-grid-wrapp:first-child{margin-right:30px}.round-grid-wrapp:first-child:before{position:absolute;bottom:0;left:-20px;z-index:1;width:20px;height:100%;background-color:#fff;content:""}.round-grid__connector{position:absolute;top:calc(50% + 40px);right:-10px;height:50%;border-top:1px solid hsla(0,0%,43.9%,.1);border-right:1px solid hsla(0,0%,43.9%,.1)}.round-grid:nth-child(2) .round-grid__connector{top:auto;bottom:calc(50% - 41px);border-top:none;border-right:1px solid hsla(0,0%,43.9%,.1);border-bottom:1px solid hsla(0,0%,43.9%,.1)}.round-grid__round{display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.round-grid__round:not(:last-child){margin-right:21px}.round-grid__round:first-child .round-grid__round-match{height:127px!important}.round-grid__round:first-child .round-grid__round-match-connector{display:none}.round-grid__round-matches{position:relative;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.round-grid__round-header{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%;max-width:170px;margin-bottom:44px;padding:13px 0;background-color:rgba(238,237,239,.1);border:1px solid hsla(0,0%,43.9%,.1)}.round-grid__round-title{margin-bottom:8px;color:#1f2021;font-weight:700;font-size:14px;line-height:1.42}.round-grid__round-subtitle{color:#707070;font-size:12px;text-transform:uppercase}.round-grid__round-match{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:170px;padding-bottom:14px}.round-grid__round-match.penultimate .round-grid__round-match-connector{top:calc(50% - 18px);height:1px}.round-grid__round-match.penultimate:after{content:none}.round-grid__round-match-connector{top:calc(25% - 18px);left:-21px;height:25%}.round-grid__round-match-connector,.round-grid__round-match-endconnector{position:absolute;width:10px;border-top:1px solid hsla(0,0%,43.9%,.1);border-right:1px solid hsla(0,0%,43.9%,.1)}.round-grid__round-match-endconnector{top:calc(50% - 18px);right:-10px;display:none;height:50%}.round-grid__round-match:after{position:absolute;bottom:calc(25% + 17px);left:-21px;width:10px;height:25%;border-right:1px solid hsla(0,0%,43.9%,.1);border-bottom:1px solid hsla(0,0%,43.9%,.1);content:""}.round-grid__round-match-link{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;text-decoration:none!important;background-color:#eeedef}.round-grid__round-match-shedule{margin-top:8px;color:#707070;font-size:12px;line-height:1.5}.round-grid__round-team{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:6px;color:#000}.round-grid__round-team:first-child{border-bottom:1px solid hsla(0,0%,43.9%,.1)}.round-grid__round-team-info{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.round-grid__round-team-icon img{max-width:28px;max-height:28px}.round-grid__round-team-name{margin-left:12px;font-size:14px;line-height:1.21}.round-grid__round-team.winner{font-weight:700}.round-grid__round-team.navi{font-weight:700;background-color:#fff794}.round-grid__round:not(:first-child) .round-grid__round-match:before{position:absolute;top:calc(50% - 18px);left:-12px;width:12px;height:1px;border-top:1px solid hsla(0,0%,43.9%,.1);content:""}.round-grid.top .round-grid__round:last-child{width:100%}.round-grid.top .round-grid__round:last-child .round-grid__round-match .round-grid__round-match-endconnector{display:block}.round-grid.top.longer .round-grid__round:last-child{width:100%}.round-grid.top.longer .round-grid__round:last-child .round-grid__round-match .round-grid__round-match-endconnector{right:calc(-100% - 30px);display:block;width:calc(100% + 30px)}.round-grid.loser .round-grid__round:last-child{width:100%}.round-grid.loser .round-grid__round:last-child .round-grid__round-match .round-grid__round-match-endconnector{top:calc(-50% - 17px);right:-9px;display:block;height:100%;border-top:none;border-bottom:1px solid hsla(0,0%,43.9%,.1)}.round-grid--double-elim-bracket.loser .round-grid__round:last-child{width:100%}.round-grid--double-elim-bracket.loser .round-grid__round:last-child .round-grid__round-match .round-grid__round-match-endconnector{top:calc(-50% - 68px);right:-10px;height:calc(100% + 49px)}.tournament-qualifications-tabs__body{margin-bottom:60px}.tournament-qualifications-tabs__description{margin-bottom:26px;color:#27262b;font-size:15px;line-height:1.43}.tournament-qualifications-tabs__regions{display:-webkit-flex;display:-ms-flexbox;display:flex;overflow-x:auto}.tournament-qualifications-tabs__region{padding:15px 14px;color:#707070;font-weight:700;font-size:14px;line-height:1.43;white-space:nowrap;background-color:#dddde0;cursor:pointer;transition:.3s ease}.has-hover .tournament-qualifications-tabs__region:hover{background-color:#fff}.tournament-qualifications-tabs__region:not(:last-child){margin-right:4px}.tournament-qualifications-tabs__region[aria-selected=true]{color:#27262b;background-color:#fff;pointer-events:none}.tournament-qualifications-tabs__lobbies,.tournament-qualifications-tabs__stages{padding:30px 19px 20px;overflow:auto;background-color:#fff}.tournament-qualifications-tabs__lobbies-body,.tournament-qualifications-tabs__stages-body{display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;max-width:100%;padding:2px 3px;overflow-x:auto;background-color:#eeedef}.tournament-qualifications-tabs__lobbies{padding-top:0}.tournament-qualifications-tabs__lobby,.tournament-qualifications-tabs__stage{padding:8px 12px;color:#707070;font-weight:700;font-size:14px;line-height:1.43;white-space:nowrap;background-color:#eaeaea;cursor:pointer;transition:.3s ease}.tournament-qualifications-tabs__lobby[aria-selected=true],.tournament-qualifications-tabs__stage[aria-selected=true]{color:#27262b;background-color:#fff;box-shadow:0 1px 2px 0 hsla(0,0%,56.9%,.44);pointer-events:none}.tournament-qualifications-tabs__lobby{font-weight:400}.target-tab{display:none}.target-tab.current{display:block}[hidden]{display:none!important}[data-panes] .tournament-play-off,[data-panes] .tournament-qualifications-tabs__lobbies{padding-left:0}[data-panes] .tournament-qualifications-tabs__lobbies{margin-top:20px}[data-page=tournament-groups] .main-news,[data-page=tournament-matches] .main-news,[data-page=tournament-news] .main-news,[data-page=tournament-overview] .main-news{padding-top:0}[data-page=tournament-groups] .tournament-play-off,[data-page=tournament-matches] .tournament-play-off,[data-page=tournament-news] .tournament-play-off,[data-page=tournament-overview] .tournament-play-off{margin-top:0}[data-page=tournament-qualifications] .content-wrapper{padding-top:60px}[data-page=tournament-qualifications] .content-block.content-block_publications,[data-page=tournament-qualifications] .tournament-play-off{margin-top:0;margin-bottom:0}[data-page=tournament-news] .main-news{padding-top:0}[data-page=tournament-groups] .tournament-groups{margin-top:0}[data-page=one-partner]{background-color:#eeedef}.one-partner-banner{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;min-height:480px}.one-partner-banner__bg{position:absolute;top:0;left:0;z-index:0;width:100%;height:100%}.one-partner-banner__bg .picture{position:relative}.one-partner-banner__bg .picture:before{display:block;width:100%;padding-top:38.33866%;content:""}.one-partner-banner__content{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:44%}.one-partner-banner__title{margin-bottom:22px;color:#eeedef;font-weight:700;font-size:28px;line-height:1.29}.one-partner-banner__description{width:100%;max-width:328px;margin-bottom:22px;color:#eeedef;font-size:18px;line-height:1.44}.one-partner-info{margin-top:-56px;margin-bottom:24px}.one-partner-info__body{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;background-color:#fff}.one-partner-info__content{width:100%;padding:46px 60px 31px 72px}.one-partner-info__title{margin-bottom:37px;color:#27262b;font-weight:700;font-size:28px;line-height:1.29}.one-partner-info__description{width:100%;color:#27262b;font-size:18px;line-height:1.44}.one-partner-info__description p:not(:last-child){margin-bottom:15px}.one-partner-info__img{width:100%;max-width:545px}.one-partner-info__img .picture{position:relative}.one-partner-info__img .picture:before{display:block;width:100%;padding-top:80.88235%;content:""}.one-partner-advantages{margin-bottom:24px}.one-partner-advantages__body{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:calc(100% + 18px);margin:0 -9px -18px}.one-partner-advantages__item{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:calc(33.3333% - 18px);margin:0 8px 18px;padding:60px 53px 40px;background-color:#fff}.one-partner-advantages__img{margin-bottom:27px}.one-partner-advantages__img img{max-width:80px;height:71px}.one-partner-advantages__title{width:100%;max-width:245px;margin-bottom:21px;color:#27262b;font-weight:700;font-size:18px;line-height:1.44;text-align:center}.one-partner-advantages__description{color:#000;font-size:14px;line-height:1.43;text-align:center}.one-partner-images{margin-bottom:24px}.one-partner-images__body{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:calc(100% + 18px);margin:0 -9px -18px}.one-partner-images__body,.one-partner-images__item{display:-webkit-flex;display:-ms-flexbox;display:flex}.one-partner-images__item{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:calc(33.3333% - 18px);margin:0 8px 18px;overflow:hidden;background-color:#fff}.one-partner-images__img{width:100%}.one-partner-images__img .picture{position:relative}.one-partner-images__img .picture:before{display:block;width:100%;padding-top:66.49485%;content:""}.one-partner-bottom-banner{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;min-height:366px}.one-partner-bottom-banner__bg{position:absolute;top:0;left:0;z-index:0;width:100%;height:100%}.one-partner-bottom-banner__bg .picture{position:relative}.one-partner-bottom-banner__bg .picture:before{display:block;width:100%;padding-top:29.23323%;content:""}.one-partner-bottom-banner__content{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100%;max-width:678px;text-align:center}.one-partner-bottom-banner__title{margin-bottom:39px;color:#fff;font-weight:700;font-size:28px;line-height:1.29}.publications-hero{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;min-height:400px;margin-bottom:60px}.publications-hero__bg{z-index:0}.publications-hero__bg,.publications-hero__bg:before{position:absolute;top:0;left:0;width:100%;height:100%}.publications-hero__bg:before{z-index:1;background-image:linear-gradient(180deg,rgba(26,25,29,.02),rgba(36,36,36,.5));content:""}.publications-hero__bg img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;object-position: center;";-o-object-position:center;object-position:center}.publications-hero__icon{position:absolute;top:40px;left:27px;z-index:1;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:52px;height:52px;background-color:#fff;border-radius:50%}.publications-hero__icon img{width:30px;height:30px}.publications-hero__content{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;padding:32px 0 32px 27px}.publications-hero__title{margin-bottom:21px;color:#eeedef;font-weight:700;font-size:28px;line-height:1.29}.publications-hero__info{color:#b6b7b9;font-size:12px;line-height:1.17}.publications-hero__info a{margin-right:5px;color:currentColor;font-weight:700;transition:.3s}.has-hover .publications-hero__info a:hover{color:#fff}.upd-block{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-bottom:60px;padding:25px 31px!important;background-color:#fff}.upd-block__icon{margin-right:16px}.upd-block__icon img{width:50px;height:50px}.upd-block__text{color:#27262b;font-size:18px;line-height:1.44}.match-info{position:relative;margin-bottom:60px}.match-info__title{margin-bottom:18px;font-weight:700;font-size:20px;line-height:1.2}.match-info__items{margin-top:23px;margin-bottom:30px}.match-info__item{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;background-color:#fff}.match-info__item:not(:last-child){margin-bottom:18px}.match-info__item-wrapp{width:100%}.match-info__item-link,.match-info__item-wrapp{display:-webkit-flex;display:-ms-flexbox;display:flex}.match-info__item-link{position:absolute;top:50%;right:20px;z-index:10;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.match-info__item-link span{margin-right:9px;color:#27262b;font-size:12px;line-height:1.2}.match-info__item-link svg{width:27px;height:27px}.match-info__item-img{position:relative;width:100%;max-width:135px}.match-info__item-img .picture{position:relative}.match-info__item-img .picture:before{display:block;width:100%;padding-top:64.44444%;content:""}.match-info__item-mapname{position:absolute;top:50%;left:50%;z-index:3;color:#fff;font-weight:600;font-size:20px;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.match-info__item-opponent{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;width:100%;max-width:265px;padding:20px}.match-info__item-opponent.reverse{-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.match-info__item-opponent.reverse .match-info__item-icon{margin-right:26px;margin-left:0}.match-info__item-opponent.reverse .match-info__item-content{-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.match-info__item-content{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;min-height:100%}.match-info__item-title{margin-bottom:8px;font-weight:700;font-size:14px;line-height:1.43}.match-info__item-pick{padding:2px 5px;color:#27262b;font-weight:700;font-size:12px;line-height:1.3;background-color:#eeedef}.match-info__item-icon{min-width:40px;height:40px;margin-left:26px}.match-info__item-icon img{height:100%}.match-info__item-score{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100%;max-width:100px;border-right:1px solid #f5f5f3;border-left:1px solid #f5f5f3}.match-info__item-score--live,.match-info__item_live{background-color:#fff136}.match-info__item_live .match-info__item-score{border-color:#f2d600}.match-info__item_live .match-info__item-pick{background-color:#fdd50b}.match-info-main{margin-bottom:60px;background-color:#fff}.match-info-main,.match-info-main-wrapp{display:-webkit-flex;display:-ms-flexbox;display:flex}.match-info-main-wrapp{width:100%}.match-info-main-wrapp_mobile{display:none}.match-info-main .live{margin:0 auto}.match-info-main__opponent{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%;max-width:50%;padding:32px 27px}.match-info-main__opponent-information{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.match-info-main__opponent-name{margin-bottom:10px;color:#27262b;font-weight:700;font-size:20px;line-height:1.3}.match-info-main__opponent-country{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-bottom:20px}.match-info-main__opponent-country img,.match-info-main__opponent-country svg{width:18px;height:12px}.match-info-main__opponent-country span{margin-left:8px;color:#707070;font-size:14px;line-height:1.43}.match-info-main__opponent-round,.match-info-main__opponent-rounds{display:-webkit-flex;display:-ms-flexbox;display:flex}.match-info-main__opponent-round{-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:22px;height:22px;color:#1cc052;font-weight:700;font-size:11px;line-height:1;text-transform:uppercase;border:1px solid #e1e1e1}.match-info-main__opponent-round:not(:last-child){margin-right:5px}.match-info-main__opponent-round--looser,.match-info-main__opponent-round_loser{color:#f6341e}.match-info-main__opponent-icon{min-width:82px;height:70px}.match-info-main__opponent-icon img{height:100%}.match-info-main__opponent_reverse{-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.match-info-main__opponent_reverse .match-info-main__opponent-rounds{margin-left:auto}.match-info-main__result{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100%;max-width:195px;border-right:1px solid #f5f5f3;border-left:1px solid #f5f5f3}.match-info-main__result_mobile{max-width:150px!important;border:none}.match-info-main__result_mobile .match-info-main__result-time{display:-webkit-flex;display:-ms-flexbox;display:flex;padding-top:5px}.match-info-main__result-info{margin-bottom:8px}.match-info-main__result-info span{display:block;padding:4px 8px;color:#27262b;font-weight:700;font-size:14px;line-height:1.29;background-color:#dddde0}.match-info-main__result-versus{margin-bottom:15px;color:#3e3a4a;font-size:49px}.match-info-main__result-time,.match-info-main__result-time_wrapp,.match-info-main__result-time_wrapp span{display:-webkit-flex;display:-ms-flexbox;display:flex}.match-info-main__result-time_wrapp span{-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:20px;height:25px;overflow:hidden;color:#27262b;font-weight:700;font-size:14px;line-height:1.43;background-color:#eeedef}.match-info-main__result-time_wrapp span:not(:last-child){margin-right:4px}.match-info-main__result-time_item{position:relative;text-align:center}.match-info-main__result-time_item:not(:last-child){padding-right:12px}.match-info-main__result-time_item:not(:last-child):after{position:absolute;top:3px;right:4px;color:#27262b;font-weight:700;font-size:14px;content:":"}.match-info-main__result-time_label{color:#686868;font-size:12px;line-height:1.25}.match-info-main_completed .live{display:none}.match-info-main_live{position:relative}.match-info-main_live .match-info-main__result-info span{display:none}.match-info-main_live .result-score{color:#e6e6e6}.match-info-main_live .result-score_winner{color:#1cc052}.match-info-main_live .result-score_loser{color:#f6341e}.match-info_hronika{margin-bottom:60px}.match-info_hronika .match-info-main{width:calc(100% + 54px);margin-left:-27px}.match-info_live-mobile{margin-bottom:0}.match-info.future-match{width:calc(100% + 54px);margin-right:-27px;margin-bottom:43px;margin-left:-27px}.match-info.future-match_mobile{display:none}.result-score{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-bottom:8px;color:#27262b;font-weight:700;font-size:40px;line-height:1.2}.result-score,.result-score__wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex}.result-score__wrapper span{margin:0 10px;font-weight:400}.result-score__item{color:#27262b;font-weight:400}.result-score__item_green{color:#00ca50;font-weight:600}.result-score__item_red{color:#f6341e}.result-score_winner{margin:0 8px}.result-score_loser{margin:0 8px;font-weight:400}.result-score.result-score-row{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.result-details__rounds{margin-bottom:10px;color:#27262b;font-size:12px;line-height:1.5}.result-details__category{color:#686868;font-size:14px;line-height:1.21}.info-item-result{display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:6px}.info-item-result__item{color:#27262b;font-size:20px;line-height:1.2}.info-item-result__item:first-child:after{margin:0 10px;content:":"}.info-item-result__item.winner{font-weight:700}.info-item-rounds{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100%;padding:0 5px}.info-item-rounds:before{margin-right:3px;content:" ( "}.info-item-rounds:after{margin-left:3px;content:" ) "}.info-item-round{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.info-item-round:not(:last-child){margin-right:6px}.info-item-round:not(:last-child):after{margin-left:2px;content:";"}.info-item-round__score{color:#f6341e;font-size:12px;line-height:1.3}.info-item-round__score--winner,.info-item-round__score.winner{color:#1cc052}.info-item-round__score.loser{color:#f6341e}.info-item-round__score.even{color:#27262b}.info-item-round__score:first-child:after{margin:0 3px;color:#27262b;content:":"}.tournament-card{display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:60px;overflow:hidden;background-color:#fff}.tournament-card__img{position:relative;min-width:180px;max-width:180px;min-height:120px}.tournament-card__img img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;object-position: center;";-o-object-position:center;object-position:center}.tournament-card__icon{position:absolute;top:50%;right:-26px;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:52px;height:52px;background-color:#fff;border:4px solid #eeedef;border-radius:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tournament-card__icon img{width:30px;height:30px}.tournament-card__content{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:34px 34px 34px 60px}.tournament-card__content,.tournament-card__info{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.tournament-card__info{width:100%;margin-bottom:11px}.tournament-card__info-date{margin-right:40px;color:#707070;font-size:14px;line-height:1.21}.tournament-card__info-country{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;color:#707070}.tournament-card__info-country svg{max-width:18px;margin-right:8px;font-size:14px;line-height:1.21}.tournament-card__bottom{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.tournament-card__title{margin-right:7px;color:#27262b;font-weight:700;font-size:28px;text-decoration:none!important}.tournament-card__type{padding:7px 10px;color:#1c1b1f;font-weight:600;font-size:12px;line-height:1.17;background-color:#fff794}.tournament-card__prize{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding-right:30px}.tournament-card__prize-icon{position:relative}.tournament-card__prize-icon:before{position:absolute;bottom:6px;left:0;z-index:0;width:30px;height:30px;background-color:#2a292e;border-radius:50%;content:""}.tournament-card__prize-icon svg{position:relative;width:30px;height:34px}.tournament-card__wrapp{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-left:14px}.tournament-card__sum{margin-bottom:2px;color:#1f2021;font-weight:700;font-size:14px;line-height:1.5;white-space:nowrap}.tournament-card_sidebar{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-top:10px;background-color:rgba(238,237,239,.1);border:1px solid hsla(0,0%,43.9%,.1)}.tournament-card_sidebar .tournament-card__img{min-width:100%;max-width:100%;min-height:147px}.tournament-card_sidebar .tournament-card__icon{top:auto;right:50%;bottom:-20px;-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%)}.tournament-card_sidebar .tournament-card__content{padding:30px 17px 17px}.tournament-card_sidebar .tournament-card__info{margin-bottom:8px}.tournament-card_sidebar .tournament-card__bottom{width:100%;padding-bottom:15px;border-bottom:1px solid #e0e0e0}.tournament-card_sidebar .tournament-card__title{font-size:18px}.tournament-card_sidebar .tournament-card__prize{padding:0 17px 17px}.tournament-card_sidebar .tournament-card__wrapp{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%}.team-composition{display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:60px;overflow:hidden;background-color:#fff}.team-composition__teams{min-width:135px;border-right:1px solid #efefef}.team-composition__team,.team-composition__teams{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.team-composition__team{-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;min-height:167px}.team-composition__team-icon{width:100%;max-width:82px;min-height:70px}.team-composition__team-icon img{width:100%}.team-composition__team-name{max-width:95%;margin-top:30px;margin-bottom:7px;overflow:hidden;font-weight:700;font-size:14px;line-height:1.21;white-space:nowrap;text-align:center;text-overflow:ellipsis}.team-composition__players{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;padding:18px 0}.team-composition__players-wrapp{display:-webkit-flex;display:-ms-flexbox;display:flex;width:calc(100% + 17px);margin:0 -8.5px;padding:0 17px}.team-composition__players-wrapp:not(:last-child){margin-bottom:17px}.team-composition__players-banned{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%;padding:30px 17px 5px 25px;border-top:1px solid #efefef}.team-composition__player{display:block;width:calc(20% - 17px);margin:0 8.5px;overflow:hidden;color:inherit;text-decoration:none;border:1px solid #efefef}.team-composition__player-img{width:100%;height:118px}.team-composition__player-img img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;object-position: center;";-o-object-position:center;object-position:center}.team-composition__player-details{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;min-height:30px;padding:0 3px}.team-composition__player-country{margin-right:4px}.team-composition__player-country img{max-width:18px}.team-composition__player-nickname{overflow:hidden;font-weight:700;font-size:14px;line-height:1.21;white-space:nowrap;text-overflow:ellipsis}.banned-col__title{margin-bottom:10px;font-weight:600;font-size:14px;line-height:1.21}.banned-col__items{display:-webkit-flex;display:-ms-flexbox;display:flex}.banned-col__item{max-width:44px;max-height:44px;overflow:hidden}.banned-col__item img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;object-position: center;";-o-object-position:center;object-position:center}.banned-col__item:not(:last-child){margin-right:9px}.publications-comment{margin-bottom:60px;background-color:#fff}.publications-comment__header{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:32px;border-bottom:1px solid #eeedef}.publications-comment__body{padding:35px 32px 12px;overflow:hidden;overflow-wrap:break-word}.publications-comment__body .content-block{margin-top:0}.publications-comment__icon{width:57px;height:57px;margin-right:16px;border-radius:50%}.publications-comment__icon img{width:100%;height:100%}.publications-comment__details{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.publications-comment__user{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-bottom:6px}.publications-comment__user-country{margin-right:8px}.publications-comment__user-country img{max-width:18px;max-height:12px}.publications-comment__user-name{color:#27262b;font-weight:600;font-size:18px;line-height:1.11}.publications-comment__position{color:#707070;font-size:14px;line-height:1.21}.table-block{position:relative;margin-bottom:60px}.table-block__body{min-width:816px;background-color:#fff}.table-block__row{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%;padding:17px 22px 17px 62px}.table-block__row:nth-child(2n){background-color:#f9f9f9}.table-block__column{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;min-width:100px;color:#000;white-space:nowrap;text-align:center}.table-block__column:first-child{min-width:220px;padding-left:0;text-align:left}.table-block__labels .table-block__column{color:#707070;font-weight:500;font-size:14px}.table-block__number{position:absolute;top:23px;left:28px;color:#000;font-weight:500;font-size:14px}.table-block__logo{display:block;min-width:30px;max-height:30px;margin-right:20px;text-align:center}.table-block__logo img{max-width:30px;max-height:30px}.table-block__name{width:100%;max-width:175px;font-weight:500}.table-block__item{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;min-width:100px;color:#000;font-weight:500;text-align:center}.table-block__item span.green{color:#009e3f}.table-block__item span.red{color:#ae0000}.table-block__item span.bold{font-weight:700}.old-publications{padding:0 30px 45px;color:#3d3d3d}.old-publications p{margin-bottom:35px;font-size:18px;line-height:1.5}.old-publications p>img{width:100%}.old-publications p iframe{width:100%;border:none;outline:none}.old-publications h2{font-size:27px;line-height:1}.old-publications a{color:#3d3d3d;text-decoration:underline;background-color:#fff200}.old-publications table{width:80%;margin-right:auto;margin-bottom:30px;margin-left:auto;font-size:13px;line-height:15px;border:0;border-collapse:collapse;border-spacing:0}.old-publications table tbody{display:table-row-group;border-collapse:collapse}.old-publications table tr{background:#fff}.old-publications table tr:nth-child(2n){background:#e4e9ec}.old-publications table td{height:40px;padding:0 5px;text-align:center;vertical-align:middle;border:0}.old-publications .flag{width:auto;margin-right:4px}.old-publications .header-text{padding:60px 0;font-weight:700;font-size:20px;line-height:28px}.old-publications .text-gray{margin-right:-30px;margin-bottom:60px;margin-left:-30px;padding:60px 30px;background-color:#e4e9ec}.old-publications .text-gray strong{font-weight:700;font-size:18px;line-height:1.5}.old-publications .community-answer,.old-publications .community-answer>div{display:-webkit-flex;display:-ms-flexbox;display:flex}.old-publications .community-answer img.icon-author{width:115px;height:115px;margin-right:25px;border-radius:50%}.old-publications .community-answer .name{width:100%;margin-bottom:10px;font-weight:700;font-size:20px;line-height:1}.old-publications .community-answer .short-description{margin-bottom:20px;color:#9da6ab;font-size:15px;line-height:20px}.old-publications .answer-content{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.old-publications .block-matchday{margin-bottom:60px}.old-publications .block-matchday .wrap-btn{margin:25px 0 0;text-align:center}.old-publications .block-matchday .wrap-btn .btn,.old-publications .block-matchday .wrap-btn .link-detail{display:inline-block;width:210px;margin:0 5px;padding:0;color:#fff;font-weight:700;font-size:15px;line-height:46px;text-transform:uppercase;text-decoration:none;vertical-align:top;background:#24262c;cursor:pointer;transition:all .3s ease 0s}.old-publications .block-matchday .wrap-btn .btn:hover,.old-publications .block-matchday .wrap-btn .link-detail:hover{color:#fff200}.old-publications .block-matchday .wrap-btn .link-detail{width:198px;height:46px;color:#24262c;font-size:15px;line-height:40px;text-align:center;background:#fff;border:3px solid #24262c;cursor:pointer;transition:all .2s ease-in 0s}.old-publications .block-matchday .wrap-btn .link-detail:hover{color:#fff;background:#24262c}.old-publications .matchday{position:relative}.old-publications .matchday .block-vs{position:absolute;top:280px;left:58px;width:45px;height:45px;color:#fff;font:20px/45px Proxima Nova,sans-serif;font-weight:700;text-align:center;background:#313131;border-radius:100px 100px 100px 100px}.old-publications .matchday .caption{height:40px;color:#fff;font-weight:700;font-size:13px;line-height:37px;text-align:center;background-color:#24262c}.old-publications .matchday .head{height:30px;color:#313131;font-weight:700;font-size:13px;line-height:30px;text-align:center;background-color:#e3e4e8}.old-publications .matchday .command{display:-webkit-flex;display:-ms-flexbox;display:flex;padding-top:25px}.old-publications .matchday .command:last-child{background-color:#e4e9ec}.old-publications .matchday .logo-command-wrap{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end;width:150px;height:208px;padding-bottom:25px}.old-publications .matchday .logo-command{display:inline-block;width:154px;color:#313131;text-align:center;vertical-align:middle}.old-publications .matchday .logo-command img{display:inline-block;max-width:115px}.old-publications .matchday .logo-command .title-command{display:inline-block;color:#313131;font-weight:700;font-size:13px;line-height:1}.old-publications .matchday .name-player{position:absolute;bottom:0;left:0;width:100%;height:20px;color:#fff;font-size:11px;line-height:20px;text-align:center;background-color:#313131}.old-publications .matchday .list-player{display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;max-width:660px;padding:25px 0}.old-publications .matchday .list-player li{position:relative;width:20%;height:158px;margin-right:23px;overflow:hidden}.old-publications .matchday .list-player li img{display:block;width:100%;-o-object-fit:cover;object-fit:cover}.old-publications caption{height:40px;color:#fff;font-weight:700;line-height:40px;background:#24262c}.old-publications thead tr{background:#e3e4e8}.old-publications .match-statistics .name-team{display:inline-block;width:130px;line-height:16px;vertical-align:middle}.old-publications .match-statistics .first-team{display:block;float:left;width:155px;text-align:right}.old-publications .match-statistics .first-team>img{margin:-1px 0 0 7px;vertical-align:middle}.old-publications .match-statistics .item-score{display:block;float:left;width:70px}.old-publications .match-statistics .item-score .first-team-score{position:relative;float:left;box-sizing:border-box;width:50%;padding:0 5px 0 0;text-align:right}.old-publications .match-statistics .item-score .first-team-score:before{position:absolute;top:0;right:-2px;display:block;content:":"}.old-publications .match-statistics .item-score .second-team-score{float:left;box-sizing:border-box;width:50%;padding:0 0 0 6px;text-align:left}.old-publications .match-statistics .second-team{display:block;float:left;width:155px;text-align:left}.old-publications .match-statistics .second-team:before{display:inline-block;width:1px;height:100%;vertical-align:middle;visibility:hidden;content:""}.old-publications .block-grid-tourney{box-sizing:border-box;padding:7px 12px;color:#3d3d3d;font:10px/21px Proxima Nova,sans-serif;background-color:#e4e9ec}.old-publications .block-grid-tourney .list-name-cell{*zoom:1}.old-publications .block-grid-tourney .list-name-cell:after,.old-publications .block-grid-tourney .list-name-cell:before{display:table;content:" "}.old-publications .block-grid-tourney .list-name-cell:after{clear:both}.old-publications .block-grid-tourney .list-name-cell li{float:left;width:124px;height:20px;margin:0 22px 20px 0;color:#fff;font-weight:700;text-align:center;text-transform:uppercase;background-color:#3d3d3d}.old-publications .block-grid-tourney .list-name-cell li.hide{visibility:hidden;opacity:0}.old-publications .block-grid-tourney .list-name-cell li:last-child{margin-right:0}.old-publications .block-grid-tourney .cell{box-sizing:border-box;width:124px;height:20px;margin-right:22px;padding:0 3px;background-color:#fff;*zoom:1}.old-publications .block-grid-tourney .cell:after{clear:both}.old-publications .block-grid-tourney .cell:after,.old-publications .block-grid-tourney .cell:before{position:absolute;right:10px;display:block;display:table;height:2px;background-color:#b5c0c7;content:" "}.old-publications .block-grid-tourney .cell>div{float:left}.old-publications .block-grid-tourney .cell .icon-team{width:22px;line-height:20px;text-align:center}.old-publications .block-grid-tourney .cell .icon-team>img{max-width:22px;max-height:18px;vertical-align:middle}.old-publications .block-grid-tourney .cell .name-team{width:80px;padding:0 4px}.old-publications .block-grid-tourney .cell .points-team{width:15px;font-weight:700}.old-publications .block-grid-tourney .cell-b{margin-top:2px}.old-publications .block-grid-tourney .cell-r{position:absolute;top:11px;left:146px}.old-publications .block-grid-tourney .cell-r:after,.old-publications .block-grid-tourney .cell-r:before{display:none}.old-publications .block-grid-tourney .cell-r .points-team{display:inline-block;width:12px;height:14px;margin-top:3px;background-image:url(https://navi.gg/design/navi_ru/img/icon-sb76df8d6e7.png);background-repeat:no-repeat;background-position:-6331px 0}.old-publications .block-grid-tourney .base{position:relative;float:left}.old-publications .block-grid-tourney .command{*zoom:1}.old-publications .block-grid-tourney .command:after,.old-publications .block-grid-tourney .command:before{display:table;content:" "}.old-publications .block-grid-tourney .command:after{clear:both}.old-publications .block-grid-tourney .command .cell:after{top:20px;width:12px}.old-publications .block-grid-tourney .command .base-2 .cell:after{right:0;width:22px}.old-publications .block-grid-tourney .command .base-2 .cell-b:after{display:none}.old-publications .block-grid-tourney .command .base-4 .wrap-cell-b .cell-b:after{top:5px}.old-publications .block-grid-tourney .command .base-4 .wrap-cell-b .cell-b:before{top:7px}.old-publications .block-grid-tourney .command .base-4 .cell-b:after{top:35px;right:0}.old-publications .block-grid-tourney .command .base-4 .cell-b:before{top:22px;width:2px;height:13px}.old-publications .block-grid-tourney .command .base-8 .wrap-cell-b .cell-b:after,.old-publications .block-grid-tourney .command .base-8 .wrap-cell-b .cell-b:before{top:-26px}.old-publications .block-grid-tourney .command .base-8 .cell-b:after{top:66px;right:0}.old-publications .block-grid-tourney .command .base-8 .cell-b:before{top:20px;width:2px;height:46px}.old-publications .block-grid-tourney .wrap-cell-b{position:relative}.old-publications .block-grid-tourney .wrap-cell{position:relative;margin-bottom:10px}.old-publications .block-grid-tourney .command-4 .base-2{margin:26px 0 0}.old-publications .block-grid-tourney .command-8 .base-2{margin:83px 0 0}.old-publications .block-grid-tourney .command-8 .base-4>div:last-child{margin-bottom:0}.old-publications .block-grid-tourney .command-8 .base-4 .wrap-cell-b{margin-bottom:20px}.old-publications .block-grid-tourney .command-8 .base-8 .wrap-cell{margin:26px 0 72px}.old-publications .block-grid-tourney .command-16 .base-2{margin:197px 0 0}.old-publications .block-grid-tourney .command-16 .base-4>div:last-child{margin-bottom:0}.old-publications .block-grid-tourney .command-16 .base-4 .wrap-cell-b{margin-bottom:20px}.old-publications .block-grid-tourney .command-16 .base-8>div:first-child{margin-top:26px}.old-publications .block-grid-tourney .command-16 .base-8 .wrap-cell{margin:72px 0}.old-publications .block-grid-tourney .command-16 .base-16 .wrap-cell{margin:83px 0 186px}.old-publications .block-grid-tourney .command-16 .base-16 .wrap-cell-b .cell-b:after,.old-publications .block-grid-tourney .command-16 .base-16 .wrap-cell-b .cell-b:before{top:-83px}.old-publications .block-grid-tourney .command-16 .base-16 .cell-b:after{top:123px;right:0}.old-publications .block-grid-tourney .command-16 .base-16 .cell-b:before{top:22px;width:2px;height:103px}.old-publications .block-grid-tourney .wrap-looser{clear:both;padding:40px 0 0}.old-publications .block-grid-tourney .double-elimination-grid-4-teams .base-2-looser{margin-top:26px}.old-publications .block-grid-tourney .double-elimination-grid-4-teams .base-2-looser .cell-b:after{top:84px;right:0}.old-publications .block-grid-tourney .double-elimination-grid-4-teams .base-2-looser .cell-b:before{top:22px;width:2px;height:64px}.old-publications .block-grid-tourney .double-elimination-grid-4-teams .base-2{margin:-75px 0 0}.old-publications .block-grid-tourney .double-elimination-grid-4-teams .wrap-looser .base-2{margin-top:10px}.old-publications .block-grid-tourney .double-elimination-grid-4-teams .wrap-looser .base-2-looser{margin-top:-1px}.old-publications .block-grid-tourney .double-elimination-grid-4-teams .wrap-looser .base-2-looser:after,.old-publications .block-grid-tourney .double-elimination-grid-4-teams .wrap-looser .base-2-looser:before{position:absolute;display:block;background-color:#b5c0c7;content:""}.old-publications .block-grid-tourney .double-elimination-grid-4-teams .wrap-looser .base-2-looser:after{top:10px;left:-12px;width:12px;height:2px}.old-publications .block-grid-tourney .double-elimination-grid-4-teams .wrap-looser .base-2-looser:before{top:-2px;left:-12px;width:2px;height:12px}.old-publications .block-grid-tourney .double-elimination-grid-4-teams .wrap-looser .base-2-looser .cell-b:after{top:-43px;right:0}.old-publications .block-grid-tourney .double-elimination-grid-4-teams .wrap-looser .base-2-looser .cell-b:before{top:-43px;width:2px;height:64px}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .base-2-looser{margin:83px 0 0 146px}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .base-2-looser .cell-b:after{top:120px;right:0}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .base-2-looser .cell-b:before{top:22px;width:2px;height:98px}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .base-2{margin:-148px 0 0}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .base-8 .wrap-cell .cell:after{right:-63px;width:85px}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .base-8 .wrap-cell .cell-b:after{right:-146px;width:85px}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .base-8 .wrap-cell-b .cell:after{right:-63px;width:85px}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .base-8 .wrap-cell-b .cell-b:after{right:-146px;width:85px}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .base-8 .cell-b:before{top:20px;right:-63px;width:2px;height:46px}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .wrap-looser .base-2{margin:-27px 0 0}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .wrap-looser .clear,.old-publications .block-grid-tourney .double-elimination-grid-8-teams .wrap-looser .clear-b{clear:both}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .wrap-looser .clear-b .base-2,.old-publications .block-grid-tourney .double-elimination-grid-8-teams .wrap-looser .clear .base-2{margin-top:10px}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .wrap-looser .clear-b .base-2-looser,.old-publications .block-grid-tourney .double-elimination-grid-8-teams .wrap-looser .clear .base-2-looser{margin-top:-1px}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .wrap-looser .clear .base-2-looser .cell-b:after{top:35px;right:0}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .wrap-looser .clear .base-2-looser .cell-b:before{top:22px;width:2px;height:13px}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .wrap-looser .clear-b .base-2-looser .cell-b:after{top:5px;right:0}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .wrap-looser .clear-b .base-2-looser .cell-b:before{top:7px;width:2px;height:13px}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .wrap-looser .base-2-looser{margin:-38px 0 0}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .wrap-looser .base-2-looser:after,.old-publications .block-grid-tourney .double-elimination-grid-8-teams .wrap-looser .base-2-looser:before{position:absolute;display:block;background-color:#b5c0c7;content:""}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .wrap-looser .base-2-looser:after{top:9px;left:-12px;width:12px;height:2px}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .wrap-looser .base-2-looser:before{top:-3px;left:-12px;width:2px;height:12px}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .wrap-looser .base-2-looser .cell-b:after{top:-79px;right:0}.old-publications .block-grid-tourney .double-elimination-grid-8-teams .wrap-looser .base-2-looser .cell-b:before{top:-78px;width:2px;height:98px}.old-publications .block-picks-bans{overflow:auto;margin-bottom:60px}.old-publications .block-picks-bans .caption{background-color:#24262c;height:40px;font:13px/40px Proxima Nova,sans-serif;font-weight:700;color:#fff;text-align:center}.old-publications .block-picks-bans .head{background-color:#e3e4e8;height:30px;color:#313131;font:13px/30px Proxima Nova,sans-serif;font-weight:700;*zoom:1}.old-publications .block-picks-bans .head:after,.old-publications .block-picks-bans .head:before{content:" ";display:table}.old-publications .block-picks-bans .head:after{clear:both}.old-publications .block-picks-bans .command .name-hero,.old-publications .block-picks-bans .command .name-map{background-color:#313131;position:absolute;bottom:0;left:0;width:100%;height:20px;text-align:center;font:11px/20px Proxima Nova,sans-serif;color:#fff}.old-publications .block-picks-bans .logo-command{color:#313131;text-align:center;vertical-align:middle;display:inline-block;width:149px}.old-publications .block-picks-bans .logo-command img{max-width:115px;display:inline-block}.old-publications .block-picks-bans .logo-command .title-command{display:inline-block;font:13px/13px Proxima Nova,sans-serif;font-weight:700;color:#313131}.old-publications .picks-bans-1{width:880px}.old-publications .picks-bans-1 .head div{width:660px;float:left;text-align:center}.old-publications .picks-bans-1 .head div:first-child{width:165px}.old-publications .picks-bans-1 .head div:last-child{width:55px;text-align:left}.old-publications .picks-bans-1 .command{*zoom:1}.old-publications .picks-bans-1 .command:after,.old-publications .picks-bans-1 .command:before{content:" ";display:table}.old-publications .picks-bans-1 .command:after{clear:both}.old-publications .picks-bans-1 .command:last-child{background-color:#e4e9ec}.old-publications .picks-bans-1 .command .logo-command-wrap{width:165px;float:left;height:208px}.old-publications .picks-bans-1 .command .logo-command{width:154px}.old-publications .picks-bans-1 .command .list-pick{width:660px;float:left;*zoom:1;padding:25px 0}.old-publications .picks-bans-1 .command .list-pick:after,.old-publications .picks-bans-1 .command .list-pick:before{content:" ";display:table}.old-publications .picks-bans-1 .command .list-pick:after{clear:both}.old-publications .picks-bans-1 .command .list-pick li{float:left;width:120px;height:158px;position:relative;margin-right:12px;overflow:hidden}.old-publications .picks-bans-1 .command .list-pick li img{display:block}.old-publications .picks-bans-1 .command .list-ban{width:55px;float:left;padding:25px 0}.old-publications .picks-bans-1 .command .list-ban li{margin-bottom:2px;width:30px;height:30px}.old-publications .picks-bans-1 .command .list-ban li:last-child{margin:0}.old-publications .picks-bans-1 .command .list-ban.d2-ban6 li{width:25px;height:25px;margin-left:5px}.old-publications .picks-bans-1 .command .list-ban img{width:100%;display:block}.old-publications .picks-bans-2{width:880px;*zoom:1;border-bottom:4px solid #e4e9ec}.old-publications .picks-bans-2:after,.old-publications .picks-bans-2:before{content:" ";display:table}.old-publications .picks-bans-2:after{clear:both}.old-publications .picks-bans-2 .head div{width:140px;float:left;text-align:center}.old-publications .picks-bans-2 .head div:first-child,.old-publications .picks-bans-2 .head div:last-child{width:160px}.old-publications .picks-bans-2 .command{*zoom:1;height:252px}.old-publications .picks-bans-2 .command:after,.old-publications .picks-bans-2 .command:before{content:" ";display:table}.old-publications .picks-bans-2 .command:after{clear:both}.old-publications .picks-bans-2 .command .map{width:120px;height:95px;position:relative;float:left;text-align:center;margin:0 11px 12px}.old-publications .picks-bans-2 .command .map img{width:100%;display:block}.old-publications .picks-bans-2 .command .map .name-map{text-transform:uppercase}.old-publications .picks-bans-2 .logo-command-wrap{width:160px;float:left;height:252px}.old-publications .picks-bans-2 .select-command-wrap{float:left;padding:25px 0 10px;box-sizing:border-box;margin-left:-3px}.old-publications .picks-bans-2 .select-command-wrap .select-command-1 .map{position:relative}.old-publications .picks-bans-2 .select-command-wrap .select-command-1 .map:after{content:"";position:absolute;top:0;left:0;width:100%;height:75px}.old-publications .picks-bans-2 .select-command-wrap .select-command-1 .map:before{content:"";position:absolute;top:30px;left:-18px;border:9px solid transparent}.old-publications .picks-bans-2 .select-command-wrap .select-command-1 .map[data-color=ban]:after{*zoom:1;filter:progid:DXImageTransform.Microsoft.gradient(gradientType=1,startColorstr="#FFE73836",endColorstr="#FF00FFFF");background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIHgxPSIwIiB5MT0iLjUiIHgyPSIxIiB5Mj0iLjUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNlNzM4MzYiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjYSkiLz48L3N2Zz4=");background-size:100%;background-image:-webkit-gradient(linear,0 50%,100% 50%,color-stop(0,#e73836),color-stop(100%,hsla(0,0%,100%,0)));background-image:-moz-linear-gradient(left,#e73836 0,hsla(0,0%,100%,0) 100%);background-image:-webkit-linear-gradient(left,#e73836,hsla(0,0%,100%,0));background-image:linear-gradient(90deg,#e73836 0,hsla(0,0%,100%,0))}.old-publications .picks-bans-2 .select-command-wrap .select-command-1 .map[data-color=ban]:before{border-right:9px solid #e73836}.old-publications .picks-bans-2 .select-command-wrap .select-command-1 .map[data-color=pick]:after{*zoom:1;filter:progid:DXImageTransform.Microsoft.gradient(gradientType=1,startColorstr="#FF45DE96",endColorstr="#FF00FFFF");background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIHgxPSIwIiB5MT0iLjUiIHgyPSIxIiB5Mj0iLjUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiM0NWRlOTYiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjYSkiLz48L3N2Zz4=");background-size:100%;background-image:-webkit-gradient(linear,0 50%,100% 50%,color-stop(0,#45de96),color-stop(100%,hsla(0,0%,100%,0)));background-image:-moz-linear-gradient(left,#45de96 0,hsla(0,0%,100%,0) 100%);background-image:-webkit-linear-gradient(left,#45de96,hsla(0,0%,100%,0));background-image:linear-gradient(90deg,#45de96 0,hsla(0,0%,100%,0))}.old-publications .picks-bans-2 .select-command-wrap .select-command-1 .map[data-color=pick]:before{border-right:9px solid #45de96}.old-publications .picks-bans-2 .select-command-wrap .select-command-2 .map{position:relative}.old-publications .picks-bans-2 .select-command-wrap .select-command-2 .map:after{content:"";position:absolute;top:0;left:0;width:100%;height:75px}.old-publications .picks-bans-2 .select-command-wrap .select-command-2 .map:before{content:"";position:absolute;top:30px;right:-18px;border:9px solid transparent}.old-publications .picks-bans-2 .select-command-wrap .select-command-2 .map[data-color=ban]:after{*zoom:1;filter:progid:DXImageTransform.Microsoft.gradient(gradientType=1,startColorstr="#FF00FFFF",endColorstr="#FFE73836");background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIHgxPSIwIiB5MT0iLjUiIHgyPSIxIiB5Mj0iLjUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2U3MzgzNiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjYSkiLz48L3N2Zz4=");background-size:100%;background-image:-webkit-gradient(linear,0 50%,100% 50%,color-stop(0,hsla(0,0%,100%,0)),color-stop(100%,#e73836));background-image:-moz-linear-gradient(left,hsla(0,0%,100%,0) 0,#e73836 100%);background-image:-webkit-linear-gradient(left,hsla(0,0%,100%,0),#e73836);background-image:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#e73836)}.old-publications .picks-bans-2 .select-command-wrap .select-command-2 .map[data-color=ban]:before{border-left:9px solid #e73836}.old-publications .picks-bans-2 .select-command-wrap .select-command-2 .map[data-color=pick]:after{*zoom:1;filter:progid:DXImageTransform.Microsoft.gradient(gradientType=1,startColorstr="#FF00FFFF",endColorstr="#FF45DE96");background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIHgxPSIwIiB5MT0iLjUiIHgyPSIxIiB5Mj0iLjUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzQ1ZGU5NiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjYSkiLz48L3N2Zz4=");background-size:100%;background-image:-webkit-gradient(linear,0 50%,100% 50%,color-stop(0,hsla(0,0%,100%,0)),color-stop(100%,#45de96));background-image:-moz-linear-gradient(left,hsla(0,0%,100%,0) 0,#45de96 100%);background-image:-webkit-linear-gradient(left,hsla(0,0%,100%,0),#45de96);background-image:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#45de96)}.old-publications .picks-bans-2 .select-command-wrap .select-command-2 .map[data-color=pick]:before{border-left:9px solid #45de96}.old-publications .picks-bans-2 .select-last{float:left;width:120px;padding-top:65px;box-sizing:border-box;margin:0 6px 0 11px}.old-publications .picks-bans-2 .select-last .map{margin:0;position:relative}.old-publications .picks-bans-2 .select-last .map:after{content:"";position:absolute;top:0;left:0;width:100%;height:75px;*zoom:1;filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr="#FF00FFFF",endColorstr="#FF45DE96");background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIHgxPSIuNSIgeTE9IjAiIHgyPSIuNSIgeTI9IjEiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzQ1ZGU5NiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjYSkiLz48L3N2Zz4=");background-size:100%;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0,hsla(0,0%,100%,0)),color-stop(100%,#45de96));background-image:-moz-linear-gradient(top,hsla(0,0%,100%,0) 0,#45de96 100%);background-image:-webkit-linear-gradient(top,hsla(0,0%,100%,0),#45de96);background-image:linear-gradient(180deg,hsla(0,0%,100%,0) 0,#45de96)}.old-publications .picks-bans-3{*zoom:1;border-bottom:4px solid #e4e9ec}.old-publications .picks-bans-3:after,.old-publications .picks-bans-3:before{content:" ";display:table}.old-publications .picks-bans-3:after{clear:both}.old-publications .picks-bans-3 .head div{width:560px;float:left;text-align:center}.old-publications .picks-bans-3 .head div:first-child,.old-publications .picks-bans-3 .head div:last-child{width:160px}.old-publications .picks-bans-3 .command{*zoom:1;height:342px}.old-publications .picks-bans-3 .command:after,.old-publications .picks-bans-3 .command:before{content:" ";display:table}.old-publications .picks-bans-3 .command:after{clear:both}.old-publications .picks-bans-3 .command .map{width:170px;height:140px;position:relative;float:left;text-align:center;margin:0 11px 12px}.old-publications .picks-bans-3 .command .map img{width:100%;display:block}.old-publications .picks-bans-3 .command .map .name-map{text-transform:uppercase;height:40px;line-height:13px}.old-publications .picks-bans-3 .command .map .name-map span{width:160px;vertical-align:middle;display:inline-block}.old-publications .picks-bans-3 .logo-command-wrap{width:160px;float:left;height:342px}.old-publications .picks-bans-3 .select-command-wrap{float:left;padding:25px 0 10px;box-sizing:border-box;margin-left:-7px}.old-publications .picks-bans-3 .select-command-wrap .select-command-1 .map{position:relative}.old-publications .picks-bans-3 .select-command-wrap .select-command-1 .map:after{content:"";position:absolute;top:0;left:0;width:100%;height:100px;*zoom:1;filter:progid:DXImageTransform.Microsoft.gradient(gradientType=1,startColorstr="#FF45DE96",endColorstr="#FF00FFFF");background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIHgxPSIwIiB5MT0iLjUiIHgyPSIxIiB5Mj0iLjUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiM0NWRlOTYiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjYSkiLz48L3N2Zz4=");background-size:100%;background-image:-webkit-gradient(linear,0 50%,100% 50%,color-stop(0,#45de96),color-stop(100%,hsla(0,0%,100%,0)));background-image:-moz-linear-gradient(left,#45de96 0,hsla(0,0%,100%,0) 100%);background-image:-webkit-linear-gradient(left,#45de96,hsla(0,0%,100%,0));background-image:linear-gradient(90deg,#45de96 0,hsla(0,0%,100%,0))}.old-publications .picks-bans-3 .select-command-wrap .select-command-1 .map:before{content:"";position:absolute;top:42px;left:-18px;border:9px solid transparent;border-right-color:#45de96}.old-publications .picks-bans-3 .select-command-wrap .select-command-2 .map{position:relative}.old-publications .picks-bans-3 .select-command-wrap .select-command-2 .map:after{content:"";position:absolute;top:0;left:0;width:100%;height:100px;*zoom:1;filter:progid:DXImageTransform.Microsoft.gradient(gradientType=1,startColorstr="#FF00FFFF",endColorstr="#FF45DE96");background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIHgxPSIwIiB5MT0iLjUiIHgyPSIxIiB5Mj0iLjUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzQ1ZGU5NiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjYSkiLz48L3N2Zz4=");background-size:100%;background-image:-webkit-gradient(linear,0 50%,100% 50%,color-stop(0,hsla(0,0%,100%,0)),color-stop(100%,#45de96));background-image:-moz-linear-gradient(left,hsla(0,0%,100%,0) 0,#45de96 100%);background-image:-webkit-linear-gradient(left,hsla(0,0%,100%,0),#45de96);background-image:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#45de96)}.old-publications .picks-bans-3 .select-command-wrap .select-command-2 .map:before{content:"";position:absolute;top:42px;right:-18px;border:9px solid transparent;border-left-color:#45de96}.old-publications .picks-bans-3 .select-last{float:left;width:170px;padding-top:100px;box-sizing:border-box;margin:0 2px 0 11px}.old-publications .picks-bans-3 .select-last .map{margin:0;position:relative}.old-publications .picks-bans-3 .select-last .map:after{content:"";position:absolute;top:0;left:0;width:100%;height:100px;*zoom:1;filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr="#FF00FFFF",endColorstr="#FF45DE96");background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIHgxPSIuNSIgeTE9IjAiIHgyPSIuNSIgeTI9IjEiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzQ1ZGU5NiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjYSkiLz48L3N2Zz4=");background-size:100%;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0,hsla(0,0%,100%,0)),color-stop(100%,#45de96));background-image:-moz-linear-gradient(top,hsla(0,0%,100%,0) 0,#45de96 100%);background-image:-webkit-linear-gradient(top,hsla(0,0%,100%,0),#45de96);background-image:linear-gradient(180deg,hsla(0,0%,100%,0) 0,#45de96)}[data-page=publications] .details-match,[data-page=publications] .tournament-card{font-size:medium}[data-page=publications] .tournament-card__info-country{font-size:14px;line-height:1.21}[data-page=publications] .content-wrapper{padding-top:0;padding-right:0;padding-left:0}[data-page=publications] .content-wrapper>:not(.publications-hero){padding:0 27px}[data-page=old-publications] .container.container_flex{background-color:#fff}[data-page=old-publications] .content-wrapper{position:static;padding-top:0;padding-right:0;padding-left:0}.bright-moments{position:relative;margin-bottom:47px}.bright-moments__title{margin-bottom:20px;color:#27262b;font-weight:700;font-size:20px}.bright-moments__title span{font-weight:400}.bright-moments__controls{padding-bottom:10px;overflow-x:auto}.bright-moments__control,.bright-moments__controls{display:-webkit-flex;display:-ms-flexbox;display:flex}.bright-moments__control{position:relative;min-width:262px;min-height:174px;overflow:hidden;cursor:pointer;transition:.4s ease}.bright-moments__control:not(:last-child){margin-right:16px}.bright-moments__control-bg{position:relative;width:100%;max-height:174px}.bright-moments__control-bg:before{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;background-image:linear-gradient(180deg,rgba(40,39,44,.6),#1e1d22);content:""}.bright-moments__control-bg img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;object-position: center;";-o-object-position:center;object-position:center}.bright-moments__control-content{position:absolute;z-index:2;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;color:#fff;transition:.4s ease}.bright-moments__control-title{margin-bottom:8px;font-weight:700;font-size:20px;line-height:1.3}.bright-moments__control-info{font-size:14px;line-height:1.43}.bright-moments__control.is-active .bright-moments__control-content{color:#fff136}.bright-moments__contents{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:20px}.bright-moments__content{display:none;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:none}.bright-moments__content.is-show{pointer-events:auto}.bright-moments__content.is-show,.content-item{display:-webkit-flex;display:-ms-flexbox;display:flex}.content-item{width:100%;max-height:75px;overflow:hidden;background-color:#fff;cursor:pointer}.content-item__preview{position:relative;width:100%;max-width:135px;height:100%}.content-item__preview svg{position:absolute;top:50%;left:50%;z-index:1;width:40px;height:40px;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);opacity:0;transition:.3s ease}.content-item__preview:before{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;background-image:linear-gradient(180deg,rgba(40,39,44,.6),rgba(40,39,44,.6));content:""}.content-item__preview img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;object-position: center;";-o-object-position:center;object-position:center}.content-item__content{width:100%;max-width:400px;margin-left:19px;padding:18px 0}.content-item__player{width:100%;max-width:110px;height:100%;margin-left:auto}.content-item__player img{width:100%;height:100%;margin-top:10px;-o-object-fit:contain;object-fit:contain;font-family:"object-fit: contain;object-position: center;";-o-object-position:center;object-position:center}.content-item:not(:last-child){margin-bottom:13px}.content-item__wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.content-item__wrapper.is-active .content-item__video{min-height:473px;max-height:1000px;margin-bottom:10px;opacity:1;pointer-events:auto}.content-item__wrapper.is-active .bright-moments__content-item{cursor:auto}.content-item__wrapper.is-active .content-item__preview:before{background-image:linear-gradient(180deg,rgba(40,39,44,.6),#1e1d22)}.content-item__wrapper.is-active .content-item__preview svg{opacity:1}.content-item__video{max-height:0;cursor:pointer;opacity:.3;pointer-events:none}.content-item__video iframe{width:100%;height:100%}.history-match{position:relative;margin-bottom:20px}.history-match__title{color:#1f2021;font-weight:700;font-size:18px;text-transform:uppercase}.history-match .base-select{max-width:180px;margin-right:10px;margin-left:auto;border-color:#eeedef}.history-match .base-select .base-select__box{color:#1e1d23;font-size:14px;background-color:#dddde0}.history-match__header{-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.history-match__header,.history-match__header_wrapp{display:-webkit-flex;display:-ms-flexbox;display:flex}.history-match__progress{position:relative;width:100%;height:30px;margin-top:10px;background-color:#fff;border:1px solid #dddde0}.history-match__progress-line{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:100%;padding:0 10px;color:#1f2021;font-size:14px;line-height:1.21}.history-match__progress span{position:absolute;top:5px;left:10px}.history-match__body{display:-webkit-flex;display:-ms-flexbox;display:flex;margin-top:21px;padding-bottom:20px;overflow-x:auto}.history-match__item{min-width:85px}.history-match__item:not(:last-child){margin-right:6px}.history-match__item-img{position:relative;width:100%;max-width:85px;max-height:120px;overflow:hidden;border:2px solid transparent}.history-match__item-img img{display:block;width:100%;-o-object-fit:cover;object-fit:cover}.history-match__item-img span{position:absolute;bottom:16px;left:50%;color:#fff;font-weight:700;font-size:18px;line-height:1.22;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.history-match__item-info{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;margin-top:13px}.history-match__item-title{width:100%;margin-bottom:6px;font-weight:600;font-size:14px;line-height:1.21;text-align:center}.history-match__item-rate{color:#707070;font-size:12px;line-height:1.25}.history-match__item.top-rates .history-match__item-img{border-color:#00ca50}.history-match__item.low-rates .history-match__item-img{border-color:#f6341e}.abios-link{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;margin-right:8px;padding:10px 23px 10px 18px;background-image:linear-gradient(180deg,#868af4 -122%,#7c7fdb 198%)}.match-tabs{margin:60px 0}.match-tabs__controls{display:-webkit-flex;display:-ms-flexbox;display:flex}.match-tabs__content{margin-top:38px}.match-tabs__control{padding:0 22px 22px;color:#707070;font-weight:700;font-size:14px;line-height:1.43;border-bottom:2px solid transparent;cursor:pointer;transition:.4s ease}.match-tabs__control--active{color:#27262b;border-color:#1f2021}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter,.fade-leave-to{opacity:0}.details-match{position:relative}.hronika-banner-block{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;width:calc(100% + 54px);min-height:483px;margin-right:-27px;margin-left:-27px}.hronika-banner-block--pubg{margin-bottom:60px}.hronika-banner-block--simple{margin-bottom:0}.hronika-banner-block__pubg-timer{display:-ms-grid;display:grid;grid-gap:20px;-ms-grid-columns:1fr 1fr 1fr;grid-template-columns:1fr 1fr 1fr;margin-top:30px;opacity:0}.hronika-banner-block__pubg-timer-item{position:relative;color:#dddde0;font-weight:700;font-size:18px;text-align:center}.hronika-banner-block__pubg-timer-item:after{position:absolute;top:-1px;right:-12px;color:#707070;content:":"}.hronika-banner-block__pubg-timer-item:last-of-type:after{content:none}.hronika-banner-block__pubg-timer-hours,.hronika-banner-block__pubg-timer-minutes,.hronika-banner-block__pubg-timer-seconds{margin-right:-14px;letter-spacing:14px}.hronika-banner-block__pubg-timer-value{color:#707070;font-weight:400;font-size:12px;letter-spacing:normal}.hronika-banner-block__pubg-stream{position:absolute;z-index:2;width:100%;height:100%;overflow:hidden}.hronika-banner-block__pubg-stream:empty{display:none}.hronika-banner-block__pubg-stream>iframe{width:100%;max-width:100%;max-height:100%;border:none}.hronika-banner-block__pubg-finished{margin-top:23px}.hronika-banner-block__pubg-finished>.btn{cursor:default}.hronika-banner-block__img{position:absolute;top:0;left:0;z-index:0;width:100%;height:100%}.hronika-banner-block__img img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.hronika-banner-block__img_tournament,.hronika-banner-block__img img{-o-object-fit:"cover";object-fit:"cover";font-family:"object-fit: cover;object-position: center;";-o-object-position:center;object-position:center}.hronika-banner-block__img_tournament{width:70px;max-height:70px;margin-bottom:30px}.hronika-banner-block__content{position:relative;z-index:1;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100%}.hronika-banner-block__date{margin-bottom:22px;color:#fff;font-weight:700;font-size:28px;line-height:36px;text-transform:uppercase}.hronika-banner-block__subtitle,.hronika-banner-block__title{color:#fff;font-size:14px;line-height:17px}.hronika-banner-block__opponents{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-top:35px}.hronika-banner-block__opponent{width:100px;height:100px}.hronika-banner-block__opponent img{width:100%;height:100%}.hronika-banner-block__score{margin:0 90px;color:#fff;font-weight:700;font-size:74px}.dota-statistics{margin-top:25px}.dota-statistics__tab,.dota-statistics__tabs{display:-webkit-flex;display:-ms-flexbox;display:flex}.dota-statistics__tab{-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;min-width:90px;height:50px;background-color:#eaeaea;cursor:pointer;transition:.5s ease}.dota-statistics__tab:not(:last-child){margin-right:7px}.dota-statistics__tab span{color:#707070;font-weight:700;font-size:14px;line-height:20px}.dota-statistics__tab_active{background-color:#fff;pointer-events:none}.dota-statistics__tab_active span{color:#1f2021}.pick-section{position:relative;background-color:#fff}.pick-section__sides:not(:last-child){border-bottom:1px solid hsla(0,0%,43.9%,.1)}.pick-section__header{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:50px;padding:0 21px}.pick-section__logo{width:35px;max-height:35px;margin-right:12px}.pick-section__team{margin-right:27px;color:#000;font-weight:700;font-size:14px}.pick-section__side{color:#00bf4e;font-weight:700;font-size:14px;line-height:20px}.pick-section__side_darkness{color:#ff3116}.pick-section__body{display:-webkit-flex;display:-ms-flexbox;display:flex}.ban-block{min-width:135px;border-right:1px solid hsla(0,0%,43.9%,.1)}.ban-block__title{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:50px;padding-left:21px;color:#707070;font-size:14px;line-height:20px;background-color:#f9f9f9}.ban-block__heroes{padding:22px 17px 16px 20px}.ban-block__heroes-row{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;max-width:97px;margin-bottom:-6px}.ban-block__heroes-row:not(:last-child){margin-bottom:12px}.ban-block__heroes-item{position:relative;width:calc(50% - 2.5px);height:26px;margin-bottom:6px}.ban-block__heroes-item img{width:100%;height:100%;-o-object-fit:"cover";object-fit:"cover";font-family:"object-fit: cover;object-position: center;";-o-object-position:center;object-position:center;-webkit-filter:brightness(.7);filter:brightness(.7)}.pick-block{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.pick-block__title{-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:50px;padding-left:50px;color:#707070;font-size:14px;line-height:20px;background-color:#f9f9f9}.pick-block__heroes,.pick-block__title{display:-webkit-flex;display:-ms-flexbox;display:flex}.pick-block__heroes{-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:22px 19px}.pick-block__heroes-item{width:calc(20% - 8px)}.pick-block__heroes-item-img{width:100%;min-height:71px}.pick-block__heroes-item-img img{width:100%;height:100%;-o-object-fit:"cover";object-fit:"cover";font-family:"object-fit: cover;object-position: center;";-o-object-position:center;object-position:center}.pick-block__heroes-item-name{margin-bottom:8px;color:#000;font-weight:700;font-size:14px;line-height:20px;text-align:center}.pick-block__heroes-item-nickname{color:#000;font-weight:400;font-size:14px;line-height:20px;text-align:center}.match-statistics{margin-top:50px}.match-statistics__body{background-color:#fff}.match-statistics__team,.match-statistics__team-info{display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.match-statistics__team-info{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;max-width:160px;padding:28px 20px 38px;border-right:1px solid hsla(0,0%,43.9%,.1)}.match-statistics__team-side{margin-bottom:13px;color:#00bf4e;font-weight:700;font-size:14px;line-height:20px}.match-statistics__team-side_darkness{color:#ff3116}.match-statistics__team-img{width:78px;max-height:78px;margin-bottom:22px}.match-statistics__team-name{margin-bottom:11px;color:#000;font-weight:700;font-size:14px}.match-statistics__team-country{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.match-statistics__team-country img{width:24px;height:16px}.match-statistics__team-country span{margin-left:10px;color:#707070;font-size:14px;line-height:17px}.match-statistics__team:not(:last-child){border-bottom:1px solid hsla(0,0%,43.9%,.1)}.match-statistics__team-players{width:100%;padding:15px 0}.match-statistics__team-labels{display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-top:-10px;padding:0 10px}.match-statistics__team-label{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;color:#707070;font-weight:600;font-size:14px;line-height:50px;text-align:center}.match-statistics__team-label:first-child{min-width:70px;text-align:left}.match-statistics__team-label:nth-child(2){min-width:85px;text-align:left}.match-statistics__team-label:last-child{min-width:175px}.match-statistics__team-player{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%;padding:5px 10px}.match-statistics__team-player:nth-child(2n){background-color:#f9f9f9}.match-statistics__team-hero{position:relative;width:70px;height:40px;margin-right:13px}.match-statistics__team-hero img{width:100%;height:100%;-o-object-fit:"cover";object-fit:"cover";font-family:"object-fit: cover;object-position: center;";-o-object-position:center;object-position:center}.match-statistics__team-hero span{position:absolute;right:0;bottom:0;padding:0 3px;color:#fff;font-size:12px;line-height:18px;background-color:rgba(0,0,0,.69)}.match-statistics__team-stat{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:80px;overflow:hidden;color:#000;font-size:14px;line-height:20px;white-space:nowrap;text-align:center;text-overflow:ellipsis}.match-statistics__team-stat.nickname{max-width:75px;text-align:left}.match-statistics__team-subjects{display:-webkit-flex;display:-ms-flexbox;display:flex;width:170px}.match-statistics__team-subject{position:relative;width:31px;height:23px}.match-statistics__team-subject:not(:last-child){margin-right:3px}.match-statistics__team-subject img{width:100%;height:100%;-o-object-fit:"cover";object-fit:"cover";font-family:"object-fit: cover;object-position: center;";-o-object-position:center;object-position:center}.match-statistics__team-subject span{position:absolute;bottom:1px;left:0;padding:0 3px;color:#fff;font-size:10px;line-height:15px;background-color:rgba(0,0,0,.69)}.match-statistics__team-subject-dark{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:31px;height:23px;background-color:#000;cursor:pointer}.match-statistics__team-subject-dark span{color:#fff;font-size:12px}.match-statistics__team-subject-box{position:absolute;right:-9px;bottom:100%;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:9px;background-color:#fff;box-shadow:0 0 8px 0 rgba(34,60,80,.2);cursor:pointer}.match-statistics__team-subject-box .match-statistics__team-subject:nth-child(2n){margin-right:0!important}.chart-section{position:relative;margin-top:35px;background-color:#fff}.chart-section canvas{height:400px;margin:0 auto}.chart-section .chart{position:relative;z-index:1}.chart-section .chart-team{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:15px}.chart-section .chart-team:first-child{padding-bottom:0}.chart-section .chart-team__side{margin-right:7px;color:#00bf4e;font-weight:700;font-size:14px}.chart-section .chart-team__side_darkness{color:#ff3116}.chart-section .chart-team__name{font-weight:700;font-size:14px}.chart-section .chart-wrapp{position:relative;width:800px;margin:0 auto}[data-page=match-hronika] .content-wrapper{padding-top:0}[data-page=history-match] .content-wrapper{padding-bottom:50px}[data-page=live-match] .content-wrapper{padding-top:0}[data-page=live-match] .team-composition-wrapp{margin-top:50px}[data-page=match] .content-wrapper{padding-top:0}.match-list-block{position:relative;margin-bottom:60px}.match-list-block .swiper-wrapper{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.match-list-block .tournament-section .swiper-container{position:relative;padding-bottom:60px;overflow:hidden}.match-list-block .swiper-pagination.tablet{top:calc(100% - 45px);display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100%;height:8px}.match-list-block .swiper-pagination.tablet .swiper-pagination-bullet{width:8px;height:8px;background-color:#c7c7c7;border-radius:50%}.match-list-block .swiper-pagination.tablet .swiper-pagination-bullet:not(:last-child){margin-right:7px}.match-list-block .swiper-pagination.tablet .swiper-pagination-bullet-active{background-color:#1c1b1f}.match-list-block .swiper-pagination.swiper-pagination-fraction{top:30px}.match-list-block--is-single .tournament-matches{padding-bottom:10px}.match-list-section{margin-bottom:60px}.match-list-section:last-of-type{margin-bottom:0}.match-list-section .tournament-matches .match-item_live .match-item__league{background-color:#fff136}.match-list-section .tournament-matches .match-item_live .match-item__game{background-color:#f3e535!important}.match-list-section__btn{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100%;height:48px;margin-top:20px;color:#17161a;font-size:14px;background-color:#dddde0;transition:.5s}.has-hover .match-list-section__btn:hover{background-color:#c9c9cf}.match-list-section.over-matches-vs-team{margin-bottom:40px}.tournament-match-list-block{position:relative}.chart-history-block{margin-top:50px}.chart-history-block__title{color:#27262b;font-weight:700;font-size:20px;line-height:1.3}.chart-history-block__charts{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:15px;margin-bottom:30px}.chart-history-block__chart,.chart-history-block__charts{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.chart-history-block__chart{position:relative;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:calc(50% - 12px);height:50px;margin-bottom:20px;padding:0 20px;background-color:#fff;border:1px solid #dddde0}.chart-history-block__chart-label{position:relative;color:#27262b;font-weight:700;font-size:14px;line-height:1.43}.chart-history-block__chart-statistic{position:relative;color:#1c1b1f;font-size:14px;line-height:1.43}.chart-history-block__chart-bg{position:absolute;top:0;left:0;z-index:0;height:100%}.chart-history-block__chart-bg_red{background-color:#ffc6bc}.chart-history-block__chart-bg_green{background-color:#d3eddc}[data-page=match-list] .card-item__img .picture{max-height:174px}[data-page=match-list] .tournament-section{margin-bottom:0}[data-page=match-list] .tournament-section .swiper-slide{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}[data-page=match-list] .tournament-matches{padding:0}[data-page=match-list] .tournament-matches .match-item .match-item__game{display:-webkit-flex;display:-ms-flexbox;display:flex}[data-page=match-list] .tournament-matches .match-item{padding-left:0}[data-page=match-list] .tournament-matches .match-item.match-item_live .match-item__game{width:50px}[data-page=match-list] .tournament-matches .match-item.match-item_live .match-item__game-icon{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}[data-page=match-list] .tournament-matches .match-item.match-item_live .match-item__opponents{max-width:100%}[data-page=match-list] .tournament-matches .match-item.match-item_live .match-item__opponent{width:100%}[data-page=match-list] .tournament-matches .match-item.match-item_live .match-item__opponent-separate{min-width:100px}[data-page=match-list] .tournament-matches .match-item.match-item_live .match-item__league{margin-right:0}[data-page=match-list] .pagination{margin-top:40px}[data-page=match-list] .media-list-block__btn{margin-top:30px}[data-page=navi-vs] .tournament-matches .match-item .match-item__game{display:none}.future-match-top{display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;min-height:460px}.future-match-top--active{min-height:545px}.future-match-top__logo{width:70px;max-height:70px;margin-bottom:30px;text-align:center}.future-match-top__logo>img{position:relative!important;max-width:100%;height:auto!important;max-height:100%}.future-match-top__date{margin-bottom:22px;color:#fff;font-weight:700;font-size:28px;line-height:36px;text-transform:uppercase}.future-match-top__opponent-logos{margin-top:35px}.future-match-top__opponent-logo,.future-match-top__opponent-logos{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.future-match-top__opponent-logo{position:relative;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100px;height:100px}.future-match-top__opponent-logo-img{-o-object-fit:contain;object-fit:contain}.future-match-top__subtitle,.future-match-top__title{color:#fff;font-size:14px;line-height:17px}.future-match-top__video{position:relative;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:100%;max-width:870px}.future-match-top__video-frame{width:100%;height:100%}.future-match-top__video iframe{width:100%;height:calc(100% - 56px);border:none;outline:none}.future-match-top__video-information{z-index:2;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding-left:30px;background-color:#fff}.future-match-top__video-information,.future-match-top__video-information-languages{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;min-height:56px}.future-match-top__video-information-languages{width:100%}.future-match-top__video-bg{position:absolute;top:0;left:0;z-index:2;width:100%;height:100%}.future-match-top__video-bg img{position:absolute;top:0;left:0;z-index:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.future-match-top__chat{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.future-match-top__chat:empty{background-color:#1a191d}.future-match-top__chat iframe{position:relative;width:100%;height:100%;border:none;outline:none;z-index:1}.future-match-top__chat .banner-block{position:relative;height:100%;margin-bottom:0;background-color:#fff;z-index:1}.future-match-top__chat .sidebar__banner img{max-width:100%}.future-match-top__no-stream{margin-bottom:10px;color:#fff;font-weight:700;font-size:20px;text-align:center}.future-match-top__opponents{position:relative;top:calc(50% + 15px);left:50%;z-index:2;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.future-match-top__opponents span{margin:0 70px;color:#fff;font-weight:700;font-size:74px}.future-match-top__video-information--simple{margin:0 -27px}.future-match-top__video-information--simple.hidden{display:none}.future-match-top__video-information--simple .match-caster__items{opacity:0;pointer-events:none;transition:opacity .3s}.future-match-top__video-information--simple .match-caster__items.active{opacity:1;pointer-events:all}.match-caster{border-right:1px solid #f5f5f3;border-left:1px solid #f5f5f3}.match-caster,.match-caster__btn{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.match-caster__btn{height:38px;padding:0 28px;cursor:pointer}.match-caster__btn img{width:18px;height:12px;margin-right:10px}.match-caster__btn svg{margin-right:10px}.match-caster__btn-caster{display:none}.match-caster__btn:after{position:absolute;top:calc(50% - 6px);right:10px;width:8px;height:8px;border-right:2px solid #000;border-bottom:2px solid #000;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);transition:.4s ease;content:""}.match-caster__btn_active:after{top:calc(50% - 3px);-webkit-transform:rotate(-135deg);-ms-transform:rotate(-135deg);transform:rotate(-135deg)}.match-caster__items{position:absolute;top:100%;left:0;z-index:2;min-width:150px;background-color:#fff}.match-caster__item{cursor:pointer}.match-caster__item-wrapp{padding:5px 10px}.match-caster__item-wrapp img{width:18px;height:12px;margin-right:10px}.match-caster:last-child{border-right:none}.match-caster_active{-webkit-order:-1;-ms-flex-order:-1;order:-1;min-width:374px;margin-right:auto;border:none}.match-caster_active .match-caster__btn{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%;background-color:#eeedef}.match-caster_active .match-caster__btn img{width:24px;height:16px}.match-caster_active .match-caster__btn>div{display:-webkit-flex;display:-ms-flexbox;display:flex}.match-caster_active .match-caster__items{min-width:100%}.match-caster_active .match-caster__btn-caster{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.match-caster_active .match-caster__btn-caster svg{width:18px;height:16px}.match-caster:not(.match-caster_active) .match-caster__btn{padding:0 6px}.match-caster:not(.match-caster_active) .match-caster__btn .match-caster__btn-text{display:none}.match-caster:not(.match-caster_active) .match-caster__btn .match-caster__btn-flag{margin-right:20px}.match-tabs{display:-webkit-flex;display:-ms-flexbox;display:flex}.match-tab{padding:0 16px 21px;color:#707070;font-size:14px;line-height:1.43;text-transform:uppercase;border-bottom:2px solid transparent;cursor:pointer}.match-tab:not(:last-child){margin-right:50px}.match-tab[aria-selected=true]{color:#27262b;font-weight:700;border-color:#27262b;pointer-events:none}[data-page=future-match] .content-wrapper{padding-top:0}.history-statistics{margin-top:30px}.history-statistics__title{margin-bottom:15px;color:#27262b;font-weight:700;font-size:20px;line-height:1.2;text-transform:uppercase}.history-statistics__body{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.history-statistics__body,.history-statistics__item{display:-webkit-flex;display:-ms-flexbox;display:flex}.history-statistics__item{position:relative;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:calc(50% - 13px);height:50px;margin-bottom:20px;padding-right:20px;padding-left:20px;background-color:#fff;border:1px solid #e6e6e6}.history-statistics__item-progress{position:absolute;top:0;left:0;height:100%;background-color:#d3eddc}.history-statistics__item-progress.low-rates{background-color:#ffc6bc}.history-statistics__item-label{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%;font-size:14px}.navi-vs-team{padding:55px 0 80px}.navi-vs-team__title{margin-top:30px;color:#1f2021;font-weight:700;font-size:28px}.navi-vs-team .pagination{margin-top:30px}[data-page=navi-vs-team] .media-list-block__btn{margin-top:20px}.cabinet,[data-page=cabinet]{background-color:#eeedef}.cabinet{z-index:1;padding:57px 27px}.cabinet__btn-wrapp{display:-webkit-flex;display:-ms-flexbox;display:flex}.cabinet__btn.show-more{display:inline-block;margin:10px auto 20px;padding:11px 16px;color:#27262b;font-weight:600;font-size:14px;line-height:1.42;text-align:center;text-transform:uppercase;text-decoration:none;background-color:#dddde0;border:none;outline:none;cursor:pointer;transition:.3s}.cabinet__tabs{display:-webkit-flex;display:-ms-flexbox;display:flex;max-width:840px;margin-bottom:25px;border-bottom:2px solid #dddde0}.cabinet__tab{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-bottom:-2px;padding-bottom:20px;color:#707070;font-weight:700;font-size:14px;text-align:center;text-transform:uppercase;border-bottom:2px solid transparent;cursor:pointer;transition:.4s ease}.cabinet__tab--active{border-color:#1f2021;pointer-events:none}.cabinet-info{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-order:2;-ms-flex-order:2;order:2;width:100%;min-width:330px;padding:40px;background-color:#fff}.cabinet-info .icon-login{width:100%;height:100%;color:#eeedef}.cabinet-info__avatar{position:relative;width:140px;height:140px;overflow:hidden;border-radius:50%}.cabinet-info__avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;object-position: center;";-o-object-position:center;object-position:center}.cabinet-info__avatar_show .cabinet-info__upload{-webkit-transform:translateY(-60px);-ms-transform:translateY(-60px);transform:translateY(-60px)}.cabinet-info__upload-btn{padding:10px 22px;color:#1e1d23;font-size:16px;background-color:#dddde0;cursor:pointer}.cabinet-info__nickname{margin-top:20px;color:#1e1d21;font-weight:700;font-size:18px}.cabinet-info__reputation{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-top:10px}.cabinet-info__reputation span{margin-top:3px;margin-left:4px;color:#707070;font-size:12px}.cabinet__body{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.cabinet__content{min-width:840px;margin-right:25px;background-color:#fff}.notifications{position:relative;width:100%;background-color:#fff}.notifications .comments-block__footer{max-width:840px}.notifications__header{-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:30px 20px 27px 30px}.notifications__control,.notifications__header{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.notifications__control{cursor:pointer}.notifications__control-icon{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:23px;height:23px;color:#1e1d23;background-color:#fff136;border-radius:3px}.notifications__control-text{margin-left:14px;color:#27262b;font-size:14px}.notifications__control--is-read{pointer-events:none}.notifications__control--is-read .notifications__control-icon{color:#fff;background-color:#eeedef}.notifications__control--is-read .notifications__control-text{opacity:.7}.notifications__body_with-form{padding-bottom:130px}.user-settings{padding:24px 26px}.user-settings__subtitle{margin-top:56px;margin-bottom:20px;font-weight:700;font-size:18px}.user-settings__networks{margin-top:30px}.user-settings__item{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%;max-width:332px}.user-settings__item:not(:last-child){margin-bottom:30px}.user-settings__item-text{color:#1e1d23;font-size:14px;font-family:Navi,arial,sans-serif;text-transform:capitalize}.user-settings__item-btn{min-width:110px;padding-right:20px;padding-left:20px;color:#1e1d23;font-size:16px;line-height:40px;text-align:center;background-color:#dddde0;cursor:pointer;transition:.4s}.has-hover .user-settings__item-btn:hover{background-color:#bcbcc2}.user-settings__item-btn--disabled{opacity:.7;pointer-events:none}.user-settings__btn{width:330px;margin-top:40px;font-size:14px;line-height:42px;text-align:center;text-transform:uppercase;background-color:#fff136;cursor:pointer;transition:.4s}.has-hover .user-settings__btn:hover{background-color:#f3e535}.user-settings__btn--disabled{opacity:.7;pointer-events:none}.form-text-field{position:relative;display:block;margin-bottom:24px}.form-text-field .icon-green-arrow{position:absolute;right:10px;bottom:10px;color:#f6341e}.form-text-field .icon-green-arrow--confirm{color:#2abe57}.form-text-field__label{position:relative;margin-bottom:8px;color:#9c9a9d;font-size:14px;font-family:Navi,arial,sans-serif}.form-text-field__input{min-width:332px;min-height:40px;padding-right:15px;padding-left:15px;color:#1e1d23;font-size:16px;font-family:Navi,arial,sans-serif;line-height:1.2;border:1px solid #dddde0;outline:none}.form-text-field__input_email{padding-right:30px}.form-text-field__icon{position:absolute;bottom:0;left:290px;z-index:1;padding:7px 9px;line-height:1;cursor:pointer}.form-text-field_password .form-text-field__input{padding-right:40px}.form-text-field_password .icon-eye{width:22px;height:22px}.form-text-field__container{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.form-text-field__container .user-settings__item-btn{margin-top:3px;margin-left:24px}.form-text-field.form-text-field--error .form-text-field__input{border-color:red}.form-text-field--disabled{pointer-events:none}.form-switch-field{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:368px;height:20px;margin-bottom:10px;transition:.5s}.form-switch-field__slider{position:relative;width:38px;height:20px;background-color:#dddde0;border-radius:55px;cursor:pointer;transition:.4s}.form-switch-field__slider:before{position:absolute;top:3px;left:3px;width:14px;height:14px;background-color:#fff;border-radius:50%;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.4s;content:""}.form-switch-field input{display:none}.form-switch-field__label{margin-left:10px;color:#9c9a9d}.form-switch-field--disabled{opacity:.5;pointer-events:none}.form-switch-field--is-active .form-switch-field__slider{background-color:#2abe57}.form-switch-field--is-active .form-switch-field__slider:before{-webkit-transform:translateX(17px);-ms-transform:translateX(17px);transform:translateX(17px)}.file-upload_cabinet{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-top:33px}.file-upload_cabinet .file-upload__list.file-upload__list_cabinet{position:relative;top:0;right:0;bottom:0;left:0;margin-left:30px}.file-upload_cabinet .file-upload__item-info{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;color:#9c9a9d;font-size:14px;font-family:Navi,arial,sans-serif}.file-upload_cabinet .file-upload__item-info .file-upload__item-size{margin-left:5px}.cabinet-modal{position:absolute;top:50%;left:50%;z-index:111;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:49px 43px 45px 53px;font-family:Navi,arial,sans-serif;background-color:#fff;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.cabinet-modal__overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;width:100vw;height:100vh;background-color:rgba(0,0,0,.7)}.cabinet-modal__title{font-weight:700;font-size:28px;white-space:nowrap;text-transform:uppercase}.cabinet-modal__description{margin-top:18px;font-size:14px}.cabinet-modal__btn{margin-top:30px;padding:13px 22px;color:#27262b;font-weight:600;font-size:14px;text-transform:uppercase;background-color:#fff136;cursor:pointer;transition:.4s}.has-hover .cabinet-modal__btn:hover{background-color:#f3e535}.cabinet-modal__close{position:absolute;top:0;right:0;padding:20px;cursor:pointer}.cabinet-modal__close:after,.cabinet-modal__close:before{position:absolute;top:17px;left:13px;width:15px;height:2px;background-color:#7f8181;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);content:""}.cabinet-modal__close:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.error-modal{position:fixed;top:0;right:0;z-index:100;width:100%;max-width:300px;padding:15px;color:#f6341e;font-size:14px;background-color:rgba(0,0,0,.7)}.error-modal__detail{margin-bottom:5px}.team-grid{position:relative;padding:30px 15px}.team-grid,.team-grid__wrapp{display:-webkit-flex;display:-ms-flexbox;display:flex}.team-grid__wrapp{padding-right:20px;overflow-x:auto;background-color:#fff}.team-grid__column{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;min-width:170px;max-width:170px;margin-right:21px}.team-grid__column:last-child{margin-right:0}.team-grid__column.semifinals .team-grid__pair-wrapp{height:calc(100% - 40px)}.team-grid__column.semifinals .team-grid__pair{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;height:calc(50% - 20px)}.team-grid__column.semifinals-16 .team-grid__pair-wrapp{height:50%}.team-grid__column.semifinals-16 .team-grid__pair{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;height:50%}.team-grid__column.finals-16 .team-grid__pair-wrapp{height:100%}.team-grid__column.finals-16 .team-grid__pair{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;height:50%}.team-grid__column:not(:first-child) .team-grid__pair:before{position:absolute;top:calc(50% - 21px);left:-12px;width:15px;height:1px;background-color:hsla(0,0%,43.9%,.1);content:""}.team-grid__column.grandfinals .team-grid__pair:last-child:after,.team-grid__column.super-finals-16 .team-grid__pair:last-child:after{content:none}.team-grid__column.winner .team-grid__pair:before{left:-21px;width:21px}.team-grid__column.winner .team-grid__team.winner{border-bottom:none}.team-grid__title{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-bottom:44px;padding:13px 0;background-color:rgba(238,237,239,.1);border:1px solid hsla(0,0%,43.9%,.1)}.team-grid__title,.team-grid__title span{color:#707070;font-size:12px;text-transform:uppercase}.team-grid__title span{display:block}.team-grid__title span.main{margin-bottom:8px;color:#1f2021;font-weight:700;font-size:14px;line-height:1.42}.team-grid__teams{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;height:100%;margin-top:auto;margin-bottom:auto}.team-grid__teams.losers{height:auto}.team-grid__team{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%;padding:6px;background-color:#eeedef}.team-grid__team:first-child{border-bottom:1px solid hsla(0,0%,43.9%,.1)}.team-grid__team.winner{font-weight:700}.team-grid__team-icon{max-width:28px;max-height:28px}.team-grid__team-name{margin-left:12px;font-size:14px;line-height:1.21}.team-grid__team-score{margin-left:auto;line-height:1}.team-grid__team a{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%}.team-grid__pair{position:relative}.team-grid__pair:first-child:after{top:calc(50% - 21px);height:70%;border-top:1px solid hsla(0,0%,43.9%,.1)}.team-grid__pair:first-child:after,.team-grid__pair:last-child:after{position:absolute;right:-10px;width:10px;border-right:1px solid hsla(0,0%,43.9%,.1);content:""}.team-grid__pair:last-child:after{top:-20px;height:50%;border-bottom:1px solid hsla(0,0%,43.9%,.1)}.team-grid__pair-wrapp{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:30px}.team-grid__pair-date{margin-top:8px;margin-bottom:20px;color:#707070;font-size:12px;line-height:1.5}.team-grid.four-team-grid .team-grid__column:first-child .team-grid__teams.losers .team-grid__pair:last-child:after{border-right:none}.team-grid.four-team-grid .team-grid__column.finals .team-grid__teams.winners .team-grid__pair:after{top:40px;height:110%;border-bottom:none}.team-grid.four-team-grid .team-grid__column.finals .team-grid__teams.losers .team-grid__pair:after{top:-155px;height:160%;border-top:none}.team-grid.eight-team-grid.team-grid_double .team-grid__teams.losers .team-grid__pair:after{border-top:none;border-right:none}.team-grid.eight-team-grid.team-grid_double .team-grid__column:nth-child(2) .team-grid__teams.winners .team-grid__pair-wrapp{height:100%}.team-grid.eight-team-grid.team-grid_double .team-grid__column:nth-child(2) .team-grid__teams.winners .team-grid__pair{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;height:50%}.team-grid.eight-team-grid.team-grid_double .team-grid__column:nth-child(2) .team-grid__teams.winners .team-grid__pair:first-child:after,.team-grid.eight-team-grid.team-grid_double .team-grid__column:nth-child(2) .team-grid__teams.winners .team-grid__pair:last-child:after{right:-200px;width:200px;height:50%}.team-grid.eight-team-grid.team-grid_double .team-grid__column:nth-child(2) .team-grid__teams.losers .team-grid__pair:first-child:after{top:40px;height:calc(50% + 16px);border-top:1px solid hsla(0,0%,43.9%,.1);border-right:1px solid hsla(0,0%,43.9%,.1);border-bottom:none}.team-grid.eight-team-grid.team-grid_double .team-grid__column:nth-child(2) .team-grid__teams.losers .team-grid__pair-wrapp:last-child .team-grid__pair:after{top:-36px;height:calc(50% + 16px);border-top:none;border-right:1px solid hsla(0,0%,43.9%,.1);border-bottom:1px solid hsla(0,0%,43.9%,.1)}.team-grid.eight-team-grid.team-grid_double .team-grid__column.losers-3{height:379px;margin-top:auto}.team-grid.eight-team-grid.team-grid_double .team-grid__column.losers-3 .team-grid__pair:last-child:after{border-top:none;border-right:none}.team-grid.eight-team-grid.team-grid_double .team-grid__column.finals .team-grid__teams.winners{height:calc(50% - 145px)}.team-grid.eight-team-grid.team-grid_double .team-grid__column.finals .team-grid__teams.winners .team-grid__pair:last-child:after{top:40px;height:210px;border-bottom:none}.team-grid.eight-team-grid.team-grid_double .team-grid__column.finals .team-grid__teams.losers .team-grid__pair:last-child:after{top:auto;bottom:81px;height:333px;border-right:1px solid hsla(0,0%,43.9%,.1)}.team-grid.eight-team-grid.team-grid_double .team-grid__column.grand-finals .team-grid__pair:last-child:after{border-top:none;border-right:none}.team-grid.eight-team-grid.team-grid_double .team-grid__column.grand-finals.last-column .team-grid__pair-wrapp{margin-bottom:30px}.team-grid.eight-team-grid.team-grid_double .team-grid__column.last-column .team-grid__team:first-child{border-bottom:none}.team-grid.eight-team-grid.team-grid_double .team-grid__column.last-column .team-grid__pair:last-child:after{content:none}table{min-width:770px;margin-bottom:30px;padding:30px 20px;background-color:#fff;border:none}caption{height:40px;color:#fff;font-weight:700;line-height:40px;background:#24262c}tr td:first-child{padding-left:10px}tr:nth-child(2n){background-color:#f7f7f7}td{min-width:64px;padding-top:10px;padding-bottom:10px;font-size:14px;line-height:1.42;border:none}thead tr{background-color:#f7f7f7}.bracket-double-16{overflow-x:scroll;background:#fff;padding:18px}.bracket-double-16 .bracket{font-size:11px;color:#000;background:transparent;display:table;-webkit-transform-origin:left top 0;-ms-transform-origin:left top 0;transform-origin:left top 0}.bracket-double-16 .bracket *{box-sizing:content-box}.bracket-double-16 .bracket-wrapper{min-height:.01%;pointer-events:auto;padding-bottom:15px}.bracket-double-16 .bracket-scroller{pointer-events:none}.bracket-double-16 .bracket-scroller *{pointer-events:auto}.bracket-double-16 .bracket-column{float:left;position:relative}.bracket-double-16 .bracket-column:not(.bracket-column-matches){margin-left:-.1px}.bracket-double-16 .bracket-header{border-radius:2px;position:relative;left:0;right:0;line-height:18px;margin-bottom:20px;text-align:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:13px 0;color:#707070;font-size:12px;text-transform:uppercase;background-color:rgba(238,237,239,.1);border:1px solid #f0f0f0}.bracket-double-16 .bracket-header>.main{margin-bottom:8px;color:#1f2021;font-weight:700;font-size:14px;line-height:1.42}.bracket-double-16 .bracket-cell-r1,.bracket-double-16 .bracket-cell-r2,.bracket-double-16 .bracket-cell-r3,.bracket-double-16 .bracket-cell-r4,.bracket-double-16 .bracket-cell-r5{height:41px}.bracket-double-16 .bracket-cell-r6{height:1152px}.bracket-double-16 .bracket-cell-r7{height:2304px}.bracket-double-16 .bracket-cell-r1,.bracket-double-16 .bracket-cell-r2,.bracket-double-16 .bracket-cell-r3,.bracket-double-16 .bracket-cell-r4,.bracket-double-16 .bracket-cell-r5,.bracket-double-16 .bracket-cell-r6,.bracket-double-16 .bracket-cell-r7{position:relative}.bracket-double-16 .bracket-player-bottom,.bracket-double-16 .bracket-player-inner,.bracket-double-16 .bracket-player-middle,.bracket-double-16 .bracket-player-top,.bracket-double-16 .bracket-team-bottom,.bracket-double-16 .bracket-team-inner,.bracket-double-16 .bracket-team-middle,.bracket-double-16 .bracket-team-top{border:none;position:absolute;padding:6px;min-height:20px;line-height:18px;left:0;right:0;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;background-color:#eeedef;font-size:14px}.bracket-double-16 .bracket-player-bottom.winner,.bracket-double-16 .bracket-player-inner.winner,.bracket-double-16 .bracket-player-middle.winner,.bracket-double-16 .bracket-player-top.winner,.bracket-double-16 .bracket-team-bottom.winner,.bracket-double-16 .bracket-team-inner.winner,.bracket-double-16 .bracket-team-middle.winner,.bracket-double-16 .bracket-team-top.winner{font-weight:700}.bracket-double-16 .bracket-player-bottom>a,.bracket-double-16 .bracket-player-inner>a,.bracket-double-16 .bracket-player-middle>a,.bracket-double-16 .bracket-player-top>a,.bracket-double-16 .bracket-team-bottom>a,.bracket-double-16 .bracket-team-inner>a,.bracket-double-16 .bracket-team-middle>a,.bracket-double-16 .bracket-team-top>a{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%}.bracket-double-16 .bracket-player-bottom>.team-grid__team-icon,.bracket-double-16 .bracket-player-inner>.team-grid__team-icon,.bracket-double-16 .bracket-player-middle>.team-grid__team-icon,.bracket-double-16 .bracket-player-top>.team-grid__team-icon,.bracket-double-16 .bracket-team-bottom>.team-grid__team-icon,.bracket-double-16 .bracket-team-inner>.team-grid__team-icon,.bracket-double-16 .bracket-team-middle>.team-grid__team-icon,.bracket-double-16 .bracket-team-top>.team-grid__team-icon{max-width:28px;max-height:28px}.bracket-double-16 .bracket-player-bottom>.team-grid__team-name,.bracket-double-16 .bracket-player-inner>.team-grid__team-name,.bracket-double-16 .bracket-player-middle>.team-grid__team-name,.bracket-double-16 .bracket-player-top>.team-grid__team-name,.bracket-double-16 .bracket-team-bottom>.team-grid__team-name,.bracket-double-16 .bracket-team-inner>.team-grid__team-name,.bracket-double-16 .bracket-team-middle>.team-grid__team-name,.bracket-double-16 .bracket-team-top>.team-grid__team-name{margin-left:12px;font-size:14px;line-height:1.21}.bracket-double-16 .bracket-team-top{border-bottom:1px solid #ddd}.bracket-double-16 .bracket-player-top,.bracket-double-16 .bracket-team-top{bottom:0;border-radius:2px 2px 0 0}.bracket-double-16 .bracket-4ffa .bracket-player-bottom,.bracket-double-16 .bracket-4ffa .bracket-team-bottom{top:24px}.bracket-double-16 .bracket-4ffa .bracket-player-top,.bracket-double-16 .bracket-4ffa .bracket-team-top{bottom:24px}.bracket-double-16 .bracket-player-middle,.bracket-double-16 .bracket-team-middle{bottom:0;border-radius:2px}.bracket-double-16 .bracket-player-inner,.bracket-double-16 .bracket-team-inner{border-radius:0}.bracket-double-16 .bracket-player-top+.bracket-player-inner,.bracket-double-16 .bracket-team-top+.bracket-team-inner{bottom:0}.bracket-double-16 .bracket-team-bottom,.bracket-double-16 .bracket-team-middle,.bracket-double-16 .bracket-team-top{white-space:nowrap;overflow:hidden}.bracket-double-16 .bracket-score{text-align:center;background:#ebebeb;border-left:1px solid #aaa;position:absolute;line-height:22px;right:0;top:0;bottom:0}.bracket-double-16 .bracket-player-bottom .bracket-score,.bracket-double-16 .bracket-team-bottom .bracket-score{border-bottom-right-radius:2px}.bracket-double-16 .bracket-player-bottom .bracket-score,.bracket-double-16 .bracket-team-top .bracket-score{border-top-right-radius:2px}.bracket-double-16 .bracket-player-middle .bracket-score,.bracket-double-16 .bracket-team-middle .bracket-score{border-top-right-radius:2px;border-bottom-right-radius:2px}.bracket-double-16 .bracket-hover{-moz-box-shadow:0 0 2px #000;-webkit-box-shadow:0 0 2px #000;box-shadow:0 0 2px #000;border:1px solid #000!important}.bracket-double-16 .bracket-hover,.bracket-double-16 .bracket-player-bottom,.bracket-double-16 .bracket-player-inner,.bracket-double-16 .bracket-player-middle,.bracket-double-16 .bracket-player-top,.bracket-double-16 .bracket-team-bottom,.bracket-double-16 .bracket-team-inner,.bracket-double-16 .bracket-team-middle,.bracket-double-16 .bracket-team-top,.bracket-double-16 .grouptableslot,.bracket-double-16 .match-row,.bracket-double-16 .matchlistslot{transition:.5s;position:relative;height:41px;box-sizing:border-box}.bracket-double-16 .bracket-popup-title{display:table-row;font-weight:700;line-height:16px;padding:2px 5px}.bracket-double-16 .bracket-popup-title-left{display:table-cell;text-align:right;width:50%;padding:2px;border-bottom:1px solid #aaa}.bracket-double-16 .bracket-popup-title-right{display:table-cell;text-align:left;width:50%;padding:2px;border-bottom:1px solid #aaa}.bracket-double-16 .bracket-icons{border-top:1px solid #aaa}.bracket-double-16 .bracket-game{position:relative;margin-bottom:60px}.bracket-double-16 td.bracket-game{background-clip:padding-box}.bracket-double-16 .bracket-game .icon,.bracket-double-16 .match-row-icon,.bracket-double-16 .table-battleroyale-results .icon{cursor:pointer;height:12px;width:12px;background-image:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2012%2012%22%3E%3Cdefs%3E%3Cstyle%3E.c%7Bfill%3A%23616161%7D.i%7Bfill%3A%23fff%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Ccircle%20class%3D%22c%22%20cx%3D%226%22%20cy%3D%226%22%20r%3D%226%22%2F%3E%3Cpolygon%20class%3D%22i%22%20points%3D%224%205%204%206%205%206%205%209%204%209%204%2010%208%2010%208%209%207%209%207%202%205%202%205%204%207%204%207%205%204%205%22%2F%3E%3C%2Fsvg%3E);background-size:contain;background-repeat:no-repeat;background-color:transparent;position:absolute;image-rendering:-webkit-optimize-contrast}.bracket-double-16 .bracket-game .icon{right:16px}.bracket-double-16 td.bracket-game .icon{right:16px!important}.bracket-double-16 .match-row-icon{left:-11px;top:6px}.bracket-double-16 .bracket-class-icon{float:right;width:20px}.bracket-double-16 .table-battleroyale-results-round .icon{right:calc(50% - 5px)}.bracket-double-16 .table-battleroyale-results-round .bracket-popup-wrapper{position:absolute;top:5px;left:calc(50% - 165px)}.bracket-double-16 .bracket-archon-mode .bracket-cell-r1{height:54px}.bracket-double-16 .bracket-archon-mode .bracket-cell-r2{height:108px}.bracket-double-16 .bracket-archon-mode .bracket-cell-r3{height:216px}.bracket-double-16 .bracket-archon-mode .bracket-cell-r4{height:432px}.bracket-double-16 .bracket-archon-mode .bracket-cell-r5{height:864px}.bracket-double-16 .bracket-archon-mode .bracket-cell-r6{height:1728px}.bracket-double-16 .bracket-archon-mode .bracket-cell-r7{height:3456px}.bracket-double-16 .bracket-archon-mode .bracket-player-bottom{border-top-color:#888}.bracket-double-16 .bracket-archon-mode .bracket-player-top{border-bottom-color:#888}.bracket-double-16 .bracket-archon-mode .bracket-score{line-height:40px;font-size:1.25em}.bracket-double-16 .bracket-archon-mode .bracket-popup-title-container{font-size:.85em}.bracket-double-16 .bracket-popup-title .archon-race-icon{line-height:32px}.bracket-double-16 .bracket-popup-title-left .archon-race-icon{float:right;margin-left:5px}.bracket-double-16 .bracket-popup-title-right .archon-race-icon{float:left;margin-right:5px}.bracket-double-16 .bracket-archon-mode .bracket-game .icon{right:33px}.bracket-double-16 .bracket-doubles .bracket-cell-r1{height:54px}.bracket-double-16 .bracket-doubles .bracket-cell-r2{height:108px}.bracket-double-16 .bracket-doubles .bracket-cell-r3{height:216px}.bracket-double-16 .bracket-doubles .bracket-cell-r4{height:432px}.bracket-double-16 .bracket-doubles .bracket-cell-r5{height:864px}.bracket-double-16 .bracket-doubles .bracket-cell-r6{height:1728px}.bracket-double-16 .bracket-doubles .bracket-cell-r7{height:3456px}.bracket-double-16 .bracket-doubles .bracket-score{line-height:38px}.bracket-double-16 .bracket-doubles .bracket-game .icon{right:33px}.bracket-double-16 .bracket-game span.player-name{display:inline-block;height:17px;overflow:hidden;vertical-align:middle;width:95%}.bracket-double-16 .bracket-game a+span.player-name,.bracket-double-16 .bracket-game img+span.player-name{width:80%}.bracket-double-16 .bracket-line-topleft{border-top-left-radius:0;border:solid #f0f0f0;border-width:1px 0 0 1px}.bracket-double-16 .bracket-line-topright{border-top-right-radius:0;border:solid #f0f0f0;border-width:1px 1px 0 0}.bracket-double-16 .bracket-line-bottomleft{border-bottom-left-radius:0;border:solid #f0f0f0;border-width:0 0 1px 1px}.bracket-double-16 .bracket-line-bottomright{border-bottom-right-radius:0;border:solid #f0f0f0;border-width:0 1px 1px 0}.bracket-double-16 .bracket-line-straight{border-bottom:1px solid #f0f0f0;position:relative}.bracket-double-16 .bracket-line-straight:before{content:"";width:1px;height:1px;background:#f0f0f0;position:absolute;bottom:-1px;left:-1px}.bracket-double-16 .bracket-line-split{border-top:1px solid #f0f0f0}.bracket-double-16 .bracket-line-split-topright-red{border-top-right-radius:0;border:solid red;border-width:1px 1px 0 0}.bracket-double-16 .bracket-line-bottomleft-red{border-bottom-left-radius:0;border:solid red;border-width:0 0 1px 1px}.bracket-double-16 .bracket-line-reset{border-left:1px solid #f0f0f0;line-height:22px;width:4px;float:right}@media only screen and (min-width:768px){.tournament-matches .match-item{min-height:60px;background-color:#fff}.tournament-matches .match-item:not(:last-child){margin-bottom:10px}.tournament-matches .match-item .match-item__body{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.tournament-matches .match-item .match-item__body .match-item__league-name,.tournament-matches .match-item .match-item__body .match-item__league-stage{display:none}.tournament-matches .match-item .match-item__date{-webkit-align-items:center;-ms-flex-align:center;align-items:center;min-width:130px;margin-bottom:0}.tournament-matches .match-item .match-item__date span:after{content:none}.tournament-matches .match-item .match-item__opponent-separate{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;min-width:100px}.tournament-matches .match-item .match-item__league{display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:210px;height:auto;background-color:initial}.tournament-matches .match-item .match-item__league-stage{font-size:12px;line-height:1.17}.tournament-matches .match-item.match-item_live{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;background-color:#fff136}.tournament-matches .match-item.match-item_live .match-item__league{width:30px;padding-left:0}.tournament-matches .match-item.match-item_live .match-item__league-img{width:30px;height:30px;margin-right:8px}.tournament-matches .match-item.match-item_live .match-item__wrapp{-webkit-order:0;-ms-flex-order:0;order:0;min-height:auto}.tournament-matches .match-item.match-item_live .match-item__game{width:50px;background-color:#f3e535}.tournament-matches .match-item.match-item_live .match-item__game-icon{-webkit-transform:scale(.7334);-ms-transform:scale(.7334);transform:scale(.7334)}.tournament-matches .match-item.match-item_live .match-item__opponents{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.tournament-matches .match-item.match-item_live .match-item__opponent-separate{position:relative;left:0}.tournament-matches .match-item.match-item_live .match-item__opponent-score{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding-left:0}.tournament-matches .match-item.match-item_live .match-item__opponent-score span{display:block;padding:0 5px}.tournament-matches .match-item.match-item_live .match-item__opponent-score-wrapp{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.tournament-matches .match-item.match-item_live .match-item__opponent-round{margin:0}}@media only screen and (min-width:1200px){.sidebar .match-item_live .match-item__opponents{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.tournament-qualifications-tabs__regions::-webkit-scrollbar{height:5px}.tournament-qualifications-tabs__regions::-webkit-scrollbar-track{box-shadow:inset 0 0 6px rgba(0,0,0,.2)}.tournament-qualifications-tabs__regions::-webkit-scrollbar-thumb{background-color:#a9a9a9}.tournament-qualifications-tabs__lobbies-body::-webkit-scrollbar,.tournament-qualifications-tabs__stages-body::-webkit-scrollbar{height:5px}.tournament-qualifications-tabs__lobbies-body::-webkit-scrollbar-track,.tournament-qualifications-tabs__stages-body::-webkit-scrollbar-track{box-shadow:inset 0 0 6px rgba(0,0,0,.2)}.tournament-qualifications-tabs__lobbies-body::-webkit-scrollbar-thumb,.tournament-qualifications-tabs__stages-body::-webkit-scrollbar-thumb{background-color:#a9a9a9}}@media only screen and (min-width:768px) and (max-width:1199px){.sidebar{padding-bottom:0!important;background-color:#eeedef;border-left:none}.sidebar .banner-block{display:none}.match-item{min-height:60px;background-color:#fff}.match-item:not(:last-child){margin-bottom:0}.match-item__game{width:40px}.match-item__body{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.match-item__body .match-item__league-name,.match-item__body .match-item__league-stage{display:none}.match-item__body .live{display:-webkit-flex;display:-ms-flexbox;display:flex;margin-right:75px}.match-item__date{-webkit-align-items:center;-ms-flex-align:center;align-items:center;min-width:130px;margin-bottom:0}.match-item__date span:after{content:none}.match-item__opponent-icon svg{-webkit-transform:scale(1.15);-ms-transform:scale(1.15);transform:scale(1.15)}.match-item__opponent-separate{-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;min-width:100px}.match-item__league,.match-item__opponent-separate{display:-webkit-flex;display:-ms-flexbox;display:flex}.match-item__league{min-width:210px;height:auto;background-color:initial}.match-item_live{background-color:#fff136}.match-item_live:first-child{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.match-item_live:first-child .match-item__league{padding-left:0;background-color:transparent}.match-item_live:first-child .match-item__league-img{width:30px;height:30px;margin-right:8px}.match-item_live:first-child .match-item__wrapp{-webkit-order:0;-ms-flex-order:0;order:0;min-height:auto}.match-item_live .match-item__game{width:40px}.match-item_live .match-item__game-icon{-webkit-transform:scale(.7334);-ms-transform:scale(.7334);transform:scale(.7334)}.match-item_live .match-item__opponent-separate{position:relative;left:0;min-width:85px}.match-item_live .match-item__opponent-score{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding-left:0}.match-item_live .match-item__opponent-score span{display:block;padding:0 7px 0 5px}.match-item_live .match-item__opponent-score-wrapp{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.match-item_live .match-item__opponent-round{margin:0}.matches__header .live{display:none}.forum-block{position:relative;padding:60px 0;background-color:#fff}.forum-block:before{position:absolute;top:0;left:-18px;z-index:0;width:calc(100% + 36px);height:100%;background-color:#fff;content:""}.live-matches .swiper-slide{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;background-color:#fff136}.live-matches .swiper-slide .match-item__league{padding-left:0}.live-matches .swiper-slide .match-item__league-img{width:30px;height:30px;margin-right:8px}.live-matches .swiper-slide .match-item__wrapp{-webkit-order:0;-ms-flex-order:0;order:0;min-height:auto}.comments-block{width:calc(100% + 36px);margin-right:-18px;margin-left:-18px}.block-team__name-icon{max-height:16px}.block-team__slogan{display:none}.block-team__player-content{padding:14px 13px 13px}.block-team__player-nickname{margin-bottom:5px;font-size:11px}.block-team__player-nickname svg{width:11px;margin-right:5px}.block-team__player-name{margin-bottom:0;font-size:6px}.block-team__player-info{font-size:6px}.player-card__device-img{margin-right:20px}[data-page=all-replays] .sidebar,[data-page=all-videos] .sidebar,[data-page=media] .sidebar{display:none}[data-page=all-replays] .media-list,[data-page=all-videos] .media-list,[data-page=media] .media-list{padding-top:60px}.sidebar,[data-page=all-replays] .sidebar,[data-page=all-videos] .sidebar{display:none}.team-composition__player-img img{-o-object-fit:contain;object-fit:contain;-o-object-position:bottom;object-position:bottom}}@media only screen and (max-width:1199px) and (max-width:767px){.footer__main-social-link{-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:0!important}}@media (max-width:1799px){.branding header.header{margin-top:0}.branding-desktop{display:none}.branding-mobile{display:block}}@media only screen and (max-width:1500px){.shared-info-block{position:relative;top:0;left:0;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;max-width:100%;padding:0 0 0 14px;line-height:1}.shared-info-block,.shared-info-block__comments{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.shared-info-block__comments{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:auto;padding-bottom:0}.shared-info-block__comments svg{min-width:38px;margin-right:6px}.shared-info-block__comments:after{content:none}.shared-info-block__socials{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding-top:0}.shared-info-block__social{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:50px;border-left:1px solid hsla(0,0%,43.9%,.1)}}@media (max-width:1249px){.branding-mobile{height:30vw;min-height:30vw;background-size:auto 30vw}}@media only screen and (max-width:1199px){.container{padding:0 18px}.container_flex{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.content-wrapper{-webkit-order:2;-ms-flex-order:2;order:2;max-width:100%;padding:0 18px}.content-wrapper .forum-block{display:block}[data-page=seo]{display:none}.header__top{padding:0 18px}.header__top-link{padding:16px 10px}.header__bottom{height:60px;padding:0 18px}.header__bottom-container{min-width:120px}.header__bottom-link{padding:21.5px 7px;font-size:12px}.header__bottom-link_btn{min-width:auto}.header__bottom-nav{margin-right:0}.header__bottom-list{min-width:100px}.header__bottom-list-link{padding:0 10px;font-size:14px;line-height:2.5}.header__home-link svg{width:54px;height:43px}.search-block{bottom:-56px;padding:0}.search-block__btn{padding:18px}.search-block__input{padding:16px 10px;font-size:16px}.footer__header{padding:30px 0 0 18px}.footer__header-content{max-width:455px}.footer__header-title{margin-bottom:18px;font-size:20px;line-height:1.8}.footer__header-description{margin-bottom:23px;font-size:14px;line-height:1.42}.footer__header-img{margin-top:-65px;margin-left:0;overflow:hidden}.footer__header-img img{height:253px}.footer__main{padding:30px 18px 42px}.footer__main-sections{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:-50px}.footer__main-section{width:25%;margin-bottom:50px}.footer__main-title_btn{min-width:auto}.footer__main-social-info{display:none}.footer__main-social-links{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:-30px}.footer__main-social-link{width:25%;margin-bottom:30px}.footer__main-social-link:nth-child(4n){padding-left:40px}.footer__bottom-privacy{width:100%;max-width:305px;text-align:right}.footer__seo-h1{font-size:24px}.main-title{margin-bottom:20px;font-size:18px;line-height:1.2}.sidebar{max-width:100%}.sidebar .forum-block{display:none}.sidebar .video-item__img .picture{position:relative}.sidebar .video-item__img .picture:before{display:block;width:100%;padding-top:62.32295%;content:""}.match-item--hide-mobile,.sidebar__pubg-chat{display:none}.match-item__league-stage{font-size:12px;line-height:1.17}.forum-block__description{max-width:100%}.our-channels__counter-value span{background-color:#fff}.details-match__header{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.details-match__controls{overflow-x:auto}.details-match__control span{white-space:nowrap}.details-match__sides{position:relative;width:100%;margin-left:0;padding-top:24px;padding-bottom:24px;overflow-x:auto;background-color:#fff;border-bottom:1px solid hsla(0,0%,43.9%,.1)}.details-match__sides-wrapp{margin-left:10px}.details-match__body{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;overflow-x:auto}.details-match__label{white-space:nowrap}.details-match__label-first{display:none}.comments-block__section{padding-right:18px;padding-left:18px}.hero{height:338px}.hero__poster_big{width:68%}.hero .swiper-container{width:32%}.main-brand .picture{position:relative}.main-brand .picture:before{display:block;width:100%;padding-top:27.3224%;content:""}.main-tournament__item{width:290px}.video-item{width:calc(50% - 12px)}.video-item__img .picture{position:relative}.video-item__img .picture:before{display:block;width:100%;padding-top:62.32295%;content:""}.video-popup__video--no-stream{height:65%}.video-popup__player{width:70%}[data-page=home] .sidebar{display:-webkit-flex;display:-ms-flexbox;display:flex}[data-page=home] .sidebar .banner-block{display:none}[data-page=home] .matches>.matches{margin-bottom:0}.teams-block__control:not(:last-child){margin-right:4px}.teams-block__control-icon{width:27.5px;height:27.5px}.block-team{padding:70px 58px 43px}.block-team__img:after{width:310px;height:19px}.block-team__img .picture{position:relative}.block-team__img .picture:before{display:block;width:100%;padding-top:50.68493%;content:""}.block-team__header-right:before{top:-7px;right:-60px;width:280px;height:55px;background-size:cover}.block-team__name-text{font-size:20px}.block-team__game{font-size:28px}.block-team__social .team-info__social span{font-size:14px}.block-team .block-team__slider-controls{left:-40px;width:25px;height:25px}.block-team .block-team__slider-controls svg{width:5px;height:9px}.block-team .block-team__slider-controls_next{right:-40px;left:auto}.block-team__player-img:before,.block-team__player:before{height:calc(100% - 20px)}.block-team__player-img:after{width:89px;height:62px;background-size:cover}.block-team__player-img .picture{max-width:96px;position:relative}.block-team__player-img .picture:before{display:block;width:100%;padding-top:98.95833%;content:""}.error-block__content{bottom:50px}.error-block__text{margin-bottom:20px}.search-section__input{font-size:16px}.hero-team{min-height:385px}.hero-team__img .picture{position:relative}.hero-team__img .picture:before{display:block;width:100%;padding-top:50.19557%;content:""}.hero-team .block-team__header{padding:0 55px}.hero-team .block-team__name-text{font-size:40px}.hero-team .block-team__name-icon{max-height:26px}.hero-team .block-team__game{font-size:60px}.hero-team .block-team__slogan{display:block}.hero-team__slider{max-width:620px}.hero-team__slider-controls{left:15px;width:25px;height:25px}.hero-team__slider-controls svg{width:5px;height:9px}.hero-team__slider-controls_next{right:15px;left:auto}.hero-team .block-team__social .team-info__social span{font-size:14px}.hero-team__item svg{width:49px;height:48px}.player-card__device{width:100%;max-width:260px;padding-right:10px}.player-card__device-info{width:100%;max-width:120px;line-height:1.23}.player-card__device-name{margin-bottom:6px}[data-page=one-team] .content-wrapper{-webkit-order:0;-ms-flex-order:0;order:0;padding-top:60px}[data-page=one-team] .sidebar{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-order:2;-ms-flex-order:2;order:2;padding-top:0}[data-page=one-team] .sidebar:empty{display:none}[data-page=one-team] .sidebar .matches{width:100%}.player-info{padding:12px 18px 22px 27px}.player-info__bg{min-height:415px}.player-info__bg-img .picture{position:relative}.player-info__bg-img .picture:before{display:block;width:100%;padding-top:50.26042%;content:""}.player-info__photo{min-width:297px}.player-info__photo .picture{max-height:374px;position:relative}.player-info__photo .picture:before{display:block;width:100%;padding-top:125.92593%;content:""}.player-info__nickname{margin-bottom:14px;font-size:40px}.player-info__name{margin-bottom:9px;font-size:20px}.player-info__details{margin-bottom:26px}.player-info__participant-btn{margin-left:10px}.player-info__participant-btn .btn{padding:6.5px 5px;font-size:12px}.player-info__career{font-size:12px;line-height:1.67}.player-info__social:not(:last-child){margin-right:10px}.player-info__social span{font-size:14px}.player-info .hero-team__slider-wrapp{margin-left:-10px}.player-info .hero-team__slider-controls{left:10px}.player-info .hero-team__slider-controls_next{right:10px;left:auto}.player-recommendation__video{min-height:411px}.player-recommendation__video-bg .picture{position:relative}.player-recommendation__video-bg .picture:before{display:block;width:100%;padding-top:56.07094%;content:""}.player-tournament__quote-content{padding-right:0}.player-tournament__quote-img{min-width:370px}.player-tournament__devices-grid{-ms-grid-columns:1fr 1fr;grid-template-columns:1fr 1fr}.player-tournament__device-img{padding:12px 25px 0}.player-tournament__device-content{padding-right:30px}.player-tournament__device-btn{margin-top:16px}.player-stream-chat__body{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-bottom:60px;background-color:#eeedef}.player-stream-chat__video{max-width:100%;min-height:350px}.player-stream-chat__chat{min-height:300px}[data-page=player] .content-wrapper{-webkit-order:0;-ms-flex-order:0;order:0;padding-top:60px}[data-page=player] .sidebar{display:block;padding-top:0}.about-hero__img .picture{position:relative}.about-hero__img .picture:before{display:block;width:100%;padding-top:39.0625%;content:""}.about-staff__item{width:calc(33.3333% - 12px)}.about-presskit__item{width:calc(50% - 25px);margin-bottom:35px}.about-history__aside{margin-right:20px}.about-history__aside-range{margin-right:10px}.about-partners-banner__title{margin-bottom:12px}.about-title-partner__img>.picture{position:relative}.about-title-partner__img>.picture:before{display:block;width:100%;padding-top:191.07612%;content:""}.about-title-partner__content{padding:34px 34px 29px}.about-title-partner__title{margin-bottom:12px}.about-title-partner__description{margin-bottom:20px}.about-general-partners__item-bg{-webkit-flex:1 0 313px;-ms-flex:1 0 313px;flex:1 0 313px}.about-general-partners__item-bg .picture{position:relative}.about-general-partners__item-bg .picture:before{display:block;width:100%;padding-top:121.72524%;content:""}.about-general-partners__item-content{padding:42px 39px 42px 34px}.about-general-partners__item:nth-child(2n) .about-general-partners__item-content{padding:41px 75px 41px 33px}.about-general-partners__item-title{margin-bottom:20px}.about-general-partners__item-description{margin-bottom:20px;font-size:16px;line-height:1.6}.about-partners__body{padding-bottom:60px;-webkit-column-gap:16px;-moz-column-gap:16px;column-gap:16px;row-gap:16px}.about-partners__item-bg .picture{position:relative}.about-partners__item-bg .picture:before{display:block;width:100%;padding-top:78.43137%;content:""}.about-contacts .base-select__wrapp,.form-group.small{width:32%}.form-group.large{width:66%}.tournament-list{padding-top:60px}[data-page=tournaments] .sidebar{display:none}.news-list{padding-top:60px}[data-page=news] .sidebar{display:none}.participants__item{-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;width:calc(25% - 9px);min-height:200px;padding-top:16px}.participants__item-img img{display:none}.participants__item-team{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.participants__item-team .mobile-icon{display:block;max-width:23px;height:20px;margin-right:8px}.participants__item-teammates{top:auto;bottom:0;height:calc(100% - 45px);padding:15px 0 10px;border-top:1px solid #eeedef;opacity:1;pointer-events:auto}.tournament-participants .main-title{width:100%;max-width:80%}[data-page=tournament-groups] .sidebar,[data-page=tournament-matches] .sidebar,[data-page=tournament-news] .sidebar,[data-page=tournament-overview] .sidebar{display:block;-webkit-order:2;-ms-flex-order:2;order:2;background-color:#fff}[data-page=tournament-groups] .tournament-hero,[data-page=tournament-matches] .tournament-hero,[data-page=tournament-news] .tournament-hero,[data-page=tournament-overview] .tournament-hero{padding-top:60px}.one-partner-banner{min-height:370px}.one-partner-banner__bg .picture{position:relative}.one-partner-banner__bg .picture:before{display:block;width:100%;padding-top:48.17708%;content:""}.one-partner-banner__title{font-size:20px;line-height:1.5}.one-partner-banner__description{font-size:16px;line-height:1.25}.one-partner-info{margin-top:-28px}.one-partner-info__content{padding:36px 10px 36px 32px}.one-partner-info__title{margin-bottom:20px;font-size:20px;line-height:1.5}.one-partner-info__description{font-size:16px;line-height:1.25}.one-partner-info__img{max-width:320px}.one-partner-info__img .picture{position:relative}.one-partner-info__img .picture:before{display:block;width:100%;padding-top:116.20795%;content:""}.one-partner-advantages__item{padding:31px 21px 20px}.one-partner-advantages__title{font-size:14px}.one-partner-bottom-banner{min-height:320px}.one-partner-bottom-banner__bg .picture{position:relative}.one-partner-bottom-banner__bg .picture:before{display:block;width:100%;padding-top:41.66667%;content:""}.one-partner-bottom-banner__content{max-width:419px}.one-partner-bottom-banner__title{margin-bottom:30px;font-size:20px;line-height:1.5}.match-info-main__opponent{padding:25px 15px 25px 25px}.match-info-main__opponent-icon{max-width:80px}.match-info_hronika .match-info-main{width:calc(100% + 36px);margin-left:-19px}.match-info.future-match{width:calc(100% + 36px);margin-right:-18px;margin-left:-18px}.tournament-card__content{padding:20px 20px 20px 40px}.tournament-card__info-date{margin-right:18px}.tournament-card__bottom{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.team-composition__teams{min-width:105px}.team-composition__players-wrapp{width:calc(100% + 4px);margin:0 -2px;padding:0 15px}.team-composition__players-banned{padding:30px 15px 12px}.team-composition__player{width:calc(20% - 4px);margin:0 2px}.banned-col__item{width:40px;height:40px}.table-block{overflow-x:auto}.old-publications{padding:3%}.old-publications .header-text{padding:4%}[data-page=publications] .sidebar{display:block;-webkit-order:2;-ms-flex-order:2;order:2}[data-page=publications] .sidebar .forum-block{display:block}.hronika-banner-block{width:calc(100% + 36px);margin-right:-18px;margin-left:-18px}.match-statistics__team-info{padding:10px}.chart-section{overflow-x:auto}.chart-section .chart{min-width:820px}[data-page=match-hronika] .sidebar{padding-top:0}[data-page=history-match] .sidebar,[data-page=match-hronika] .sidebar{display:block;-webkit-order:2;-ms-flex-order:2;order:2}[data-page=future-match] .sidebar{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-order:2;-ms-flex-order:2;order:2}[data-page=match] .sidebar{display:block;-webkit-order:2;-ms-flex-order:2;order:2;margin-top:20px;background-color:#fff}.future-match-top{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;min-height:inherit}.future-match-top__date,.future-match-top__logo{margin-bottom:10px}.future-match-top__opponent-logos{margin-top:5px}.future-match-top__video{max-width:100%;min-height:350px}.future-match-top__chat>iframe{min-height:600px}.future-match-top__chat .banner-block{display:none}.match-caster__btn{padding:0 25px 0 10px}.match-caster_active{min-width:270px}.cabinet-info{-webkit-order:0;-ms-flex-order:0;order:0}.cabinet__body{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.cabinet__content{width:100%;min-width:inherit;margin-top:30px;margin-right:0}.notifications .comments-block__footer.comments-block__footer_fixed{max-width:calc(100% - 54px)}.notifications .comments-block__footer{max-width:100%}.cabinet-modal{padding:30px}}@media only screen and (max-width:767px){.container,.content-wrapper{padding:0 16px}main{overflow:hidden}.mobile{display:block}.desktop{display:none}.header__wrapper{-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.header__top-link:last-child{padding-right:10px}.header__top-link{padding:7px 10px}.header__bottom{padding:0 16px}.header__bottom-container{min-width:70px}.header__bottom-links,.header__bottom-nav{display:none}.header__home-link{position:absolute;top:8px;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.switch-language{display:none}.login svg{width:20px;height:20px;color:#f5f5f7}.hamburger{display:inline-block}.search-block{-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.search-block__input{padding-left:16px}.search-block__close{display:none}.menu{display:-webkit-flex;display:-ms-flexbox;display:flex}.menu-nav__link{padding:10px 0;font-size:14px}.footer__header{padding:34px 16px 0;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.footer__header-content{max-width:100%;margin-bottom:40px}.footer__header-img{margin-top:0}.footer__header-img img{width:100%;height:auto}.footer__main{padding:10px 0 30px}.footer__main-links{opacity:0;pointer-events:none}.footer__main-links,.footer__main-section{width:100%;border-top:1px solid rgba(238,237,239,.3)}.footer__main-section{margin:0;padding:17.5px 0}.footer__main-section:last-child{border-bottom:1px solid rgba(238,237,239,.3)}.footer__main-section_link{margin-bottom:0;padding:17.5px 16px}.footer__main-title{margin-bottom:0;padding:0 16px;color:#fff;pointer-events:none}.footer__main-title:after{position:absolute;top:50%;right:16px;width:8px;height:8px;border-right:2px solid #fff;border-bottom:2px solid #fff;-webkit-transform:rotate(-45deg) translateY(-50%);-ms-transform:rotate(-45deg) translateY(-50%);transform:rotate(-45deg) translateY(-50%);-webkit-transform-origin:4px 0;-ms-transform-origin:4px 0;transform-origin:4px 0;transition:.3s;content:""}.footer__main-title_btn{width:100%;margin:0;background-color:transparent}.footer__main-link{display:block;width:100%;padding:17.5px 16px;font-size:14px;border-bottom:1px solid rgba(238,237,239,.3)}.footer__main-link:last-child{border-bottom:none}.footer__main-social{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.footer__main-social-info{display:block;max-width:245px;margin:0 auto 20px;text-align:center}.footer__main-social-info h4{font-size:20px;line-height:1.5}.footer__main-social-info p{font-size:18px;line-height:20px}.footer__main-social-info span{font-size:18px;line-height:26px}.footer__main-social-link span{display:none}.footer__bottom{-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:30px 14px 50px}.footer__bottom-copyright{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.footer__bottom-copyright .icon-main-logo{margin-bottom:20px}.footer__bottom-policy{margin-top:10px;display:block;width:100%;max-width:305px;text-align:center}.footer__bottom-privacy{display:none}.footer__seo-h1{font-size:18px}.footer .brights--left{display:block}.btn{min-width:100%;text-align:center}.main-title{margin-bottom:12px}.main-title__results{display:none}.sidebar .video-item__img .picture{position:relative}.sidebar .video-item__img .picture:before{display:block;width:100%;padding-top:65.15581%;content:""}.sidebar .match-item_live .match-item__opponents{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.sidebar .match-item_live .match-item__opponent{max-width:calc(100% - 60px)}.matches__header{display:none}.matches__btn{position:relative;margin-top:10px}.matches__mobile .matches-list.forthcoming{margin-bottom:0}.matches__mobile .matches-list{position:absolute;display:none;visibility:hidden;opacity:0;transition:.3s;pointer-events:none}.matches__mobile .matches-list.is-active{position:relative;display:block;visibility:visible;opacity:1;pointer-events:auto}.matches__mobile-controls{display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:15px}.live-matches{display:block}.our-channels__counter-value{font-size:22px}.our-channels__counter-value span{padding:10px 7px 5px;border:1px solid #eeedef}.our-channels__counter-value span:nth-last-child(3),.our-channels__counter-value span:nth-last-child(6){margin-left:8px}.content-block h4{margin-bottom:24px;font-size:18px;line-height:1.44}.video-block__bg svg{width:30px;height:30px}.video-block__content{display:none}.base-select{min-width:100%;max-width:100%}.comments-block{width:calc(100% + 32px);margin-right:-16px;margin-left:-16px}.comments-block__section{padding-top:50px;padding-right:16px;padding-left:16px}.comments-block__avatar{display:none}.comments-block__header{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.comments-block__title{margin-bottom:10px}.comments-block__body{margin-top:20px}.comments-block__more--deep{margin-left:0}.comments-block__tree{position:relative;padding-left:24px}.comments-block__tree:before{top:45px;width:1px;height:15px}.comments-block__tree:after,.comments-block__tree:before{position:absolute;left:10px;background-color:#efefef;content:""}.comments-block__tree:after{top:60px;width:15px;height:1px}.comments-block__tree .comment-item:before,.comments-block__tree .comments-block__list:last-child:before,.comments-block__tree .comments-block__list:not(:last-child):before{content:none}.comments-block__footer{padding:20px 40px 20px 50px}.comments-block__field{padding:10px 17px}.comments-block__add-image{bottom:20px;left:10px;width:40px}.comments-block__submit{right:0;bottom:20px}.comment-item_with-line:after{content:none}.comment-item__avatar{display:none}.comment-item__link{font-size:14px}.comment-item__date{font-size:12px}.comment-item__body{padding-left:10px}.file-upload__list{left:-7px}.file-upload__item-img img{width:25px;height:25px}.file-upload__item-remove{top:-10px;right:-15px}.hero{height:400px}.hero__poster{-webkit-order:1!important;-ms-flex-order:1!important;order:1!important;width:100%;height:100%;padding:22px 15px 80px}.hero__poster-title{font-size:20px;line-height:26px}.hero__poster_big{display:none}.hero .swiper-container{width:100%}.hero .swiper-pagination{top:auto;bottom:20px;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.hero .swiper-wrapper{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;width:100%}.news-item{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:80%;margin-bottom:0!important}.news-item:not(:last-child){margin-right:20px}.news-item__img{min-width:100%;min-height:inherit}.news-item__content{height:100%}.news-item__title{font-size:18px;line-height:26px;-webkit-line-clamp:2}.news-item__description,.news-item__title{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.news-item__description{margin-bottom:10px;-webkit-line-clamp:3}.news-item_single{width:100%!important}.news-item_single .news-item__img{max-width:100%}.main-news .swiper-container,.main-news .swiper-wrapper{width:100%}.main-news .swiper-pagination{position:absolute;top:-36px;right:0;display:block}.main-news__body{display:-webkit-flex;display:-ms-flexbox;display:flex}.main-news__title{font-size:18px}.main-brand .picture{position:relative}.main-brand .picture:before{display:block;width:100%;padding-top:111.11111%;content:""}.card-item:not(:last-child){margin-right:20px}.main-tournament .swiper-pagination{position:absolute;top:-36px;right:0;display:block}.main-tournament__item{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:80%}.video-item{width:100%}.video-item__label-text{font-size:14px;line-height:1.21}.video-item__img .picture{position:relative}.video-item__img .picture:before{display:block;width:100%;padding-top:65.15581%;content:""}.video-item__content{max-width:200px}.video-item__content-title{font-size:14px;line-height:1.43}.video-popup__player{top:40%;width:95%;height:50%}.video-popup__player-close{top:-40px;right:auto;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}[data-page=home] .sidebar{-webkit-order:1;-ms-flex-order:1;order:1;margin-bottom:60px}[data-page=home] .forum-block{display:none}[data-page=home] .matches{width:100%}[data-page=home] .matches.matches__mobile{margin-bottom:0}[data-page=home] .player-videos{padding-top:0}[data-page=home] .sidebar__banner{margin-top:0}.teams-block__controls-wrapp{overflow:hidden;overflow-x:auto}.teams-block__control:not(:last-child){margin-right:14px}.teams-block__control{min-width:70px}.teams-block__control-img .picture{position:relative}.teams-block__control-img .picture:before{display:block;width:100%;padding-top:47.14286%;content:""}.teams-block__control-icon{width:22px;height:22px}.teams-block__body:not(:last-child){margin-bottom:60px}.teams-block__body .swiper-button-wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex}.teams-block__body .swiper-button svg{width:11px;height:13px;color:#707070}.teams-block__body.no-slider .block-team__player-length{display:none}.block-team{padding:29px 12px 24px}.block-team:before{background-size:cover}.block-team__img:after{content:none}.block-team__img .picture{position:relative}.block-team__img .picture:before{display:block;width:100%;padding-top:185.06944%;content:""}.block-team__header{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.block-team__header,.block-team__header-left{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.block-team__header-left{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.block-team__header-right{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;margin-top:29px}.block-team__header-right .btn{min-width:inherit}.block-team__header-right:before{content:none}.block-team__name-text{font-size:40px}.block-team__game{margin-top:8px;font-size:30px}.block-team__slogan{margin-right:0;margin-bottom:16px}.block-team__slider{width:calc(100% - 85px);margin:0 auto}.block-team__social{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:20px}.block-team .block-team__slider-controls{display:none}.block-team__player:before{height:calc(100% - 38px)}.block-team__player-img:before{height:calc(100% - 38px);background-size:100%}.block-team__player-img:after{width:148px;height:101px;background-size:contain}.block-team__player-img .picture{max-width:158px;position:relative}.block-team__player-img .picture:before{display:block;width:100%;padding-top:100%;content:""}.error-block{min-height:250px}.error-block img{-webkit-transform:scale(1.5);-ms-transform:scale(1.5);transform:scale(1.5)}.error-block__content{bottom:20px}.error-block__content .btn{min-width:150px}.error-block__text{margin-bottom:15px;font-size:16px}.search-section__input{padding:19px 14px 19px 0}.search-section__result-text{font-size:14px;line-height:2.57}.search-section__result-item{padding:16px 20px 16px 16px}.tournament-result__header{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:10px}.tournament-result__header svg{margin-left:0}.tournament-result__body{line-height:1.33}.hero-team{padding:70px 13px 11px}.hero-team__img .picture{height:100%}.hero-team .block-team__header{padding:0 16px}.hero-team .block-team__game{font-size:30px}.hero-team .block-team__slogan{font-size:18px}.hero-team__slider-controls{display:none}.hero-team .block-team__social{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:-16px}.hero-team__item{max-width:80px}.hero-team__item-img .picture{position:relative}.hero-team__item-img .picture:before{display:block;width:100%;padding-top:130%;content:""}.player-card{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.player-card__player{max-width:100%}.player-card__player-img:before{width:calc(100% - 44px);height:54%;background-size:contain}.player-card__player-img .picture{max-width:calc(100% - 70px);margin:0 auto;position:relative}.player-card__player-img .picture:before{display:block;width:100%;padding-top:94.33962%;content:""}.player-card__player-content{background-color:#2a292e}.player-card__player-nickname{font-size:28px}.player-card__player-nickname svg{width:30px;height:20px;margin-right:10px}.player-card__player-name{margin-bottom:20px;font-size:18px}.player-card__player-info{font-size:18px}.player-card__devices{display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:0;padding:10px 15px;overflow-x:auto;background-color:#1c1b1f}.player-card__device{min-width:190px;height:inherit;min-height:inherit;margin-right:10px;margin-bottom:0!important}.player-card__device-wrapp{min-width:180px}.player-card__device-img{min-width:68px;height:58px}.player-card__device-info{font-size:12px}[data-page=one-team] .sidebar{padding-top:60px}.player-info{padding:14px}.player-info__bg-img .picture{position:relative}.player-info__bg-img .picture:before{display:block;width:100%;padding-top:84.0625%;content:""}.player-info__body{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.player-info__photo{min-width:213px;margin:0 auto 36px}.player-info__photo .picture{max-height:269px;position:relative}.player-info__photo .picture:before{display:block;width:100%;padding-top:126.29108%;content:""}.player-info__participant{-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.player-info__socials{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:-16px}.player-info__social{margin-bottom:16px}.player-info .hero-team__slider-wrapp{margin-left:0}.player-recommendation__video{min-height:200px}.player-recommendation__video-bg .picture{position:relative}.player-recommendation__video-bg .picture:before{display:block;width:100%;padding-top:69.44444%;content:""}.player-recommendation__video-info{padding:18px}.player-recommendation__video-subtitle{margin-bottom:8px;font-size:12px}.player-recommendation__video-name{font-size:14px}.player-recommendation__device{width:100%}.player-recommendation__device-content{padding:0 19px 33px}.player-recommendation__device-description{max-width:100%}.player-recommendation__device.large{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.player-recommendation__device.large .player-recommendation__device-img{width:100%}.player-recommendation__device.large .player-recommendation__device-content{width:100%;padding:25px 19px 33px}.player-last-photo__body{padding:20px 0 0;background-color:transparent}.player-last-photo .swiper-container{overflow:inherit}.player-last-photo .swiper-pagination{top:-6px;right:0}.player-in-social{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.player-in-social .main-title{margin-bottom:20px}.player-in-social__links{margin-left:0}.player-in-social__link{padding:8px}.player-in-social__link:not(:last-child){margin-right:3px}.player-tournament__quote{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.player-tournament__quote-content{-webkit-order:1;-ms-flex-order:1;order:1;padding:0 10px 32px 18px}.player-tournament__quote-content .icon-quote{margin-bottom:20px}.player-tournament__quote-img{min-width:100%}.player-tournament__quote-img .picture{position:relative}.player-tournament__quote-img .picture:before{display:block;width:100%;padding-top:118.05556%;content:""}.player-tournament__quote-info{-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;margin-top:30px}.player-tournament__quote-fund{margin-bottom:20px}.player-tournament__devices-grid{-ms-grid-columns:1fr;grid-template-columns:1fr}.player-tournament .swiper-slide{width:80%}.player-tournament .swiper-slide:not(:last-child){margin-right:20px}.player-tournament .swiper-slide{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.teammates-block .swiper-slide{width:60%}[data-page=player-stream] .sidebar{display:none}.about-hero__img .picture{position:relative}.about-hero__img .picture:before{display:block;width:100%;padding-top:80.9375%;content:""}.about-hero__title{margin-bottom:20px;font-size:28px}.about-hero__description{width:100%;max-width:210px;margin:0 auto;font-size:14px;line-height:1.57;text-align:center}.about-hero__controls{-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;width:100%;overflow-x:auto;-ms-overflow-style:none;scrollbar-width:none}.about-hero__controls::-webkit-scrollbar{display:none}.about-hero__control{margin:0 14px;padding:0 10px 22px}.about-staff__section{margin-bottom:60px}.about-staff__items{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;overflow-x:auto}.about-staff__item{min-width:77%}.about-presskit__body{width:100%;margin:0}.about-presskit__item{width:100%}.about-presskit__item:not(:last-child){margin-bottom:35px}.about-history__aside{display:none}.about-history__item-date{font-size:16px}.about-history__item-title{font-size:18px}.about-partners-banner__title{max-width:90%;margin-bottom:5px;font-size:16px;line-height:1.1875}.about-partners-banner__description{font-size:14px;line-height:1.2}.about-title-partner__img{height:160px}.about-title-partner__img>.picture{position:relative}.about-title-partner__img>.picture:before{display:block;width:100%;padding-top:55.55556%;content:""}.about-title-partner__content{padding:24px 19px}.about-title-partner__content .btn{min-width:inherit}.about-title-partner__title{font-size:18px;line-height:1.22}.about-title-partner__description{margin-bottom:23px;font-size:14px}.about-general-partners__item{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.about-general-partners__item-bg .picture{position:relative}.about-general-partners__item-bg .picture:before{display:block;width:100%;padding-top:55.55556%;content:""}.about-general-partners__item-content{padding:23px 19px 31px}.about-general-partners__item-content .btn{min-width:inherit}.about-general-partners__item:nth-child(2n) .about-general-partners__item-content{padding:23px 19px 31px}.about-general-partners__item-title{font-size:18px}.about-general-partners__item-description{font-size:14px;line-height:1.43}.about-partners__body{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;width:calc(100% + 32px);margin-left:-16px;padding:0 16px 60px;overflow-x:auto;-webkit-column-gap:0;-moz-column-gap:0;column-gap:0;scroll-behavior:smooth;row-gap:0}.about-partners__item:not(:last-child){margin-right:16px}.about-partners__item-bg .picture{position:relative}.about-partners__item-bg .picture:before{display:block;width:100%;padding-top:79.36508%;content:""}.about-partners__item-content{padding:35px 22px 28px}.about-partners__item-title{font-size:18px;line-height:1.28}.about-partners__item-description{margin-bottom:16px}.about-contacts__row{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.about-contacts .base-select__wrapp{width:100%;margin-bottom:11px}.form-group:not(:last-child){margin-right:0}.form-group.large,.form-group.small{width:100%}.form-checkbox__label,.form-checkbox__label p{font-size:15px;line-height:21px}.tournament-list{padding-top:0}.tournament-section .swiper-wrapper{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;width:100%;margin:0}.tournament-section .swiper-slide{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:80%;margin:0}.tournament-section .swiper-slide:not(:last-child){margin-right:20px}.tournament-section .swiper-pagination{display:block}.category-block__tabs{width:100%;border-bottom:1px solid #eeedef}.category-block__tabs-wrapp{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:calc(100% + 32px);min-height:36px;margin:0 -16px 60px}.category-block__tabs-wrapp .base-select{min-width:calc(100% - 36px);margin-top:20px;margin-right:16px;margin-left:16px}.category-block__tab:first-child{width:auto;padding-left:10px}.category-block__tab:last-child{padding-right:10px}.category-block__tab span{font-size:11px}.news-list{padding-top:0}[data-page=tournament] .sidebar{display:none}.tournament-hero{width:calc(100% + 32px);margin:0 -16px 60px;padding-top:0}.tournament-hero__image .picture:before{padding-top:200px}.tournament-hero__image{min-height:200px}.tournament-hero__tournament-img{position:absolute;top:18px;right:50%;z-index:1;display:block;width:115px;height:115px;-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%)}.tournament-hero__content{padding:45px 14px 25px}.tournament-hero__content-date{font-size:12px}.tournament-hero__content-description{margin-bottom:20px}.tournament-hero__title{-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;font-size:18px;line-height:1.44}.tournament-hero__title-info{margin-bottom:10px;margin-left:0}.tournament-hero__prize{display:none}.tournament-hero__prize:before{bottom:2px;left:0;width:15px;height:15px}.tournament-hero__prize-info{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%}.tournament-hero__prize svg{width:16px;height:20px}.tournament-hero__prize_mobile{display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:0;border:none}.tournament-hero__controls{overflow-x:auto}.tournament-hero__control{padding:20px 35px;white-space:nowrap}.participants .swiper-wrapper{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.participants__item{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:53%;min-height:220px}.participants__item-teammates li{padding:5px 0 5px 20px}.tournament-matches{padding-top:60px;padding-bottom:60px;background-color:#fff}.tournament-matches:before{position:absolute;top:0;left:0;width:calc(100% + 32px);height:100%;margin-left:-16px;background-color:#fff;content:""}.tournament-matches .live{z-index:1;display:-webkit-flex;display:-ms-flexbox;display:flex}.tournament-matches .match-item_live .live{display:none}.tournament-matches .match-item.match-item_live{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;background-color:#fff136}.tournament-matches .match-item.match-item_live .match-item__wrapp{-webkit-order:0;-ms-flex-order:0;order:0}.tournament-matches .match-item.match-item_live .match-item__league{display:none}.tournament-groups__table{width:100%}.sidebar{-webkit-order:2;-ms-flex-order:2;order:2}.sidebar__banner{display:-webkit-flex;display:-ms-flexbox;display:flex}[data-page=tournament-matches] .tournament-matches{padding:60px 0}[data-page=tournament-groups] .tournament-hero,[data-page=tournament-matches] .tournament-hero,[data-page=tournament-news] .tournament-hero,[data-page=tournament-overview] .tournament-hero{padding-top:0}[data-page=tournament-groups] .match-item_live .match-item__opponents,[data-page=tournament-matches] .match-item_live .match-item__opponents,[data-page=tournament-news] .match-item_live .match-item__opponents,[data-page=tournament-overview] .match-item_live .match-item__opponents{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}[data-page=tournament-groups] .match-item_live .match-item__opponent,[data-page=tournament-matches] .match-item_live .match-item__opponent,[data-page=tournament-news] .match-item_live .match-item__opponent,[data-page=tournament-overview] .match-item_live .match-item__opponent{max-width:calc(100% - 60px)}[data-page=tournament-qualifications] .content-wrapper{padding-top:0}.one-partner-banner{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.one-partner-banner__bg .picture:before{padding-top:370px}.one-partner-banner__content{-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:calc(100% - 96px);margin-bottom:50px;text-align:center}.one-partner-banner__content .btn{min-width:inherit}.one-partner-banner__description{font-size:14px;line-height:1.43}.one-partner-info{margin-top:-10px}.one-partner-info__body{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.one-partner-info__content{margin-bottom:-10px;padding:20px 22px 15px}.one-partner-info__description{font-size:14px;line-height:1.43}.one-partner-info__img{max-width:100%}.one-partner-info__img .picture{position:relative}.one-partner-info__img .picture:before{display:block;width:100%;padding-top:71.67832%;content:""}.one-partner-advantages__body{width:100%;margin:0 0 -18px}.one-partner-advantages__item{width:100%;min-height:400px;margin:0 0 18px;padding:33px 28px}.one-partner-advantages__title{font-size:18px}.one-partner-images__body{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;width:100%;margin:0;overflow-x:auto}.one-partner-images__item{min-width:80%;margin:0}.one-partner-images__item:not(:last-child){margin-right:18px}.one-partner-bottom-banner__bg .picture{position:relative}.one-partner-bottom-banner__bg .picture:before{display:block;width:100%;padding-top:86.5625%;content:""}.one-partner-bottom-banner__content .btn{min-width:inherit}.publications-hero{min-height:200px}.publications-hero__icon{display:none}.publications-hero__title{width:100%;max-width:210px;margin-bottom:11px;font-size:18px;line-height:1.44}.upd-block{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:22px 24px!important}.upd-block__icon{margin-bottom:10px}.match-info__item{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.match-info__item-link{top:12px;right:10px;z-index:11;-webkit-transform:none;-ms-transform:none;transform:none}.match-info__item-link span{color:#fff}.match-info__item-img{max-width:100%;max-height:50px}.match-info__item-img .picture:before{padding-top:50px}.match-info__item-opponent{-webkit-flex-direction:column-reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:11px}.match-info__item-content{-webkit-align-items:center!important;-ms-flex-align:center!important;align-items:center!important;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.match-info__item-icon{min-width:30px;height:30px;margin-right:0!important;margin-bottom:10px;margin-left:0!important}.match-info-main{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.match-info-main-wrapp,.match-info-main-wrapp_mobile{-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%}.match-info-main-wrapp_mobile{display:-webkit-flex;display:-ms-flexbox;display:flex;padding:10px 15px 0}.match-info-main-wrapp_mobile .match-info-main__opponent-icon,.match-info-main-wrapp_mobile .match-info-main__result-info{display:block}.match-info-main-wrapp_mobile .match-info-main__result-score{display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:0;font-size:28px}.match-info-main-wrapp_mobile .match-info-main__opponent-icon{min-width:40px;max-width:40px;max-height:40px}.match-info-main-wrapp_mobile .match-info-main__opponent-icon img{width:100%}.match-info-main-wrapp_mobile .match-info-main__opponent-icon_reverse{-webkit-order:2;-ms-flex-order:2;order:2}.match-info-main__opponent{padding:0 15px 10px}.match-info-main__opponent-name{margin-bottom:6px;font-size:14px;line-height:1.4}.match-info-main__opponent-country{margin-bottom:7px}.match-info-main__opponent-country span{font-size:12px;line-height:1.2}.match-info-main__opponent-round{width:14px;height:14px;font-size:8px}.match-info-main__opponent-icon{display:none}.match-info-main__result{max-width:70px;border:none}.match-info-main__result-info{display:none}.match-info-main__result-versus{margin-bottom:0;font-size:30px}.match-info-main__result-time{display:none}.match-info-main_live .result-score_mobile{display:block}.match-info_hronika .match-info-main{width:calc(100% + 32px);margin-left:-16px}.match-info_live-mobile{padding-right:12px;padding-left:12px}.match-info.future-match{display:none;width:calc(100% + 32px);margin-right:-16px;margin-left:-16px}.match-info.future-match_mobile{display:block;margin-bottom:0;padding:0 16px}.result-score{display:none}.tournament-card{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.tournament-card__img{max-width:100%}.tournament-card__icon{top:auto;right:auto;bottom:-20px;left:50%;-webkit-transform:none;-ms-transform:none;transform:none;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tournament-card__content{padding:40px 18px 20px}.tournament-card__info{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.tournament-card__info-date,.tournament-card__title{width:100%;margin-bottom:6px}.tournament-card__title{margin-right:0;font-size:18px;line-height:1.44}.tournament-card__prize{padding:20px;border-top:1px solid #e0e0e0}.tournament-card__wrapp{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%}.team-composition{overflow-x:auto}.team-composition__teams{min-width:118px;margin-right:8px;padding:18px;border:none}.team-composition__team{min-width:118px;min-height:150px;border:1px solid #efefef}.team-composition__team:first-child{margin-bottom:16px}.team-composition__players-banned{padding-top:15px;border:none}.team-composition__player{min-width:118px}.old-publications .community-answer{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.old-publications .community-answer img.icon-author{margin-bottom:15px}.old-publications .block-matchday .wrap-btn{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.old-publications .block-matchday .wrap-btn .btn,.old-publications .block-matchday .wrap-btn .link-detail{width:100%;margin:0}.old-publications .block-matchday .wrap-btn .link-detail{margin-top:15px}.old-publications .matchday .command{width:100%;overflow-x:auto}.old-publications .matchday .list-player{width:660px}.old-publications .matchday .list-player li{width:120px}[data-page=publications] .forum-block{display:none!important}[data-page=publications] .tournament-participants{padding:0}.content-item__preview{max-width:77px}.content-item__preview svg{width:30px;height:30px}.content-item__content{margin-left:10px;padding:9px 5px 9px 0}.content-item__player{display:none}.history-match__title{margin-bottom:20px}.history-match__header{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.history-match__dropdown,.history-match__header_wrapp{width:100%}.abios-link{margin-top:20px}.match-tabs__controls{overflow-x:auto}.match-tabs__control{white-space:nowrap}.hronika-banner-block{min-height:36vh}.hronika-banner-block__img_tournament{width:40px;height:30px;margin-bottom:15px}.hronika-banner-block__date{margin-bottom:20px;font-size:18px;line-height:1.2}.hronika-banner-block__opponents{margin-top:20px}.hronika-banner-block__opponent{width:50px;height:50px}.hronika-banner-block__score{margin:0 40px;font-size:30px}.pick-section{overflow-x:auto}.pick-section__sides{min-width:815px}.match-statistics__body{min-width:832px}.match-statistics__body-wrapp{overflow-x:auto}.chart-section{margin:20px 0}[data-page=match-hronika] .sidebar{padding-top:60px}[data-page=match-hronika] .tournament-card_sidebar{display:-webkit-flex;display:-ms-flexbox;display:flex}.match-list-block,[data-page=live-match] .sidebar{padding-top:0}.match-list-block .tournament-section .swiper-container{z-index:1;padding-top:60px}.match-list-section{padding-top:60px}.match-list-section.over-matches-vs-team{margin-bottom:0}.chart-history-block__charts{-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;margin-bottom:-20px}.chart-history-block__chart{width:100%}[data-page=match-list] .sidebar{padding-top:0}[data-page=match-list] .category-block__tabs-wrapp,[data-page=match-list] .match-list-section{margin-bottom:0}[data-page=match-list] .tournament-matches .match-item.match-item_live .match-item__opponents{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}[data-page=match-list] .tournament-matches .match-item.match-item_live .match-item__opponent{display:-webkit-flex;display:-ms-flexbox;display:flex}[data-page=match-list] .tournament-matches .match-item.match-item_live .match-item__opponent-separate{min-width:60px}[data-page=match-list] .tournament-matches .match-item.match-item_live .match-item__opponent-score-wrapp{-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}[data-page=match-list] .container_flex{background-color:#fff}[data-page=match-list] .tournament-section:after{position:absolute;top:0;left:-16px;z-index:0;width:calc(100% + 32px);height:100%;background-color:#f2f2f2;content:""}[data-page=match-list] .match-list-block{padding-bottom:0}.future-match-top__opponent-logo{width:40px;height:40px}.future-match-top__video-information{padding-left:0}.future-match-top__video-information-languages{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.future-match-top__video-information-languages:before{position:absolute;top:48px;left:0;width:100%;height:1px;background-color:#f5f5f3;content:""}.future-match-top__chat--margin{margin-top:32px}.future-match-top__opponents span{margin:0 20px;font-size:22px}.match-caster:last-child{border-right:1px solid #f5f5f3}.match-caster_active{min-width:calc(100% - 30px);margin-right:15px;margin-bottom:10px;margin-left:15px}.match-tabs{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.match-tab{padding-bottom:10px}.match-tab:not(:last-child){margin-right:0;margin-bottom:15px}[data-page=future-match] .content-wrapper{padding-top:60px}[data-page=live-match] .container_flex{background-color:#fff}.history-statistics__item{width:100%}.history-statistics__item-label{font-size:12px}.navi-vs-team{padding-top:0;padding-bottom:40px}.navi-vs-team__title{font-size:18px}[data-page=navi-vs-team] .container_flex{background-color:#fff}[data-page=navi-vs-team] .match-item.visible{padding-left:0}.cabinet__tabs{overflow-x:auto}.cabinet__tab{margin-bottom:0}.cabinet__tab:not(:last-child){margin-right:50px}.cabinet__header{width:calc(100% + 27px);margin-right:-27px;padding-right:10px}.cabinet__body{width:calc(100% + 54px);margin-right:-27px;margin-left:-27px}.user-settings{padding-right:18px;padding-left:18px}.user-settings__item{max-width:100%}.user-settings__btn{width:100%}.form-text-field__input{min-width:100%}.form-text-field__container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.form-text-field__container>.form-text-field{width:100%}.form-text-field__container .user-settings__item-btn{width:100%;margin:0}.cabinet-modal{width:90%}.cabinet-modal__title{font-size:20px}table{min-width:100%}td{padding-right:10px;padding-left:10px}}
.team-grid.eight-team-grid.team-grid_double .team-grid__column.losers-3{height:420px}.template-table{padding:30px 20px;overflow-x:auto;background-color:#fff}@media only screen and (max-width:767px){.template-table{padding-right:0;padding-left:0}}.template-table table{min-width:770px;border:none}@media only screen and (max-width:767px){.template-table table{min-width:100%}}.template-table caption{height:40px;color:#fff;font-weight:700;line-height:40px;background:#24262c}.template-table tr td:first-child{padding-left:10px}.template-table tr:nth-child(2n){background-color:#e3e4e8}.template-table td{min-width:64px;padding-top:20px;padding-bottom:20px;font-size:14px;line-height:1.42;border:none}@media only screen and (max-width:767px){.template-table td{padding-right:10px;padding-left:10px}}.template-table thead tr{background-color:#e3e4e8}.team-grid{position:relative;display:flex;padding:30px 15px}.team-grid__wrapp{display:flex;padding-right:20px;overflow-x:auto;background-color:#fff}.team-grid__column{display:flex;flex-direction:column;width:100%;min-width:170px;max-width:170px;margin-right:21px}.team-grid__column:last-child{margin-right:0}.team-grid__column.semifinals .team-grid__pair-wrapp{height:calc(100% - 40px)}.team-grid__column.semifinals .team-grid__pair{display:flex;flex-direction:column;justify-content:center;height:calc(50% - 20px)}.team-grid__column.semifinals-16 .team-grid__pair-wrapp{height:50%}.team-grid__column.semifinals-16 .team-grid__pair{display:flex;flex-direction:column;justify-content:center;height:50%}.team-grid__column.finals-16 .team-grid__pair-wrapp{height:100%}.team-grid__column.finals-16 .team-grid__pair{display:flex;flex-direction:column;justify-content:center;height:50%}.team-grid__column:not(:first-child) .team-grid__pair:before{position:absolute;top:calc(50% - 21px);left:-12px;width:15px;height:1px;background-color:hsla(0,0%,43.9%,.1);content:""}.team-grid__column.grandfinals .team-grid__pair:last-child:after,.team-grid__column.super-finals-16 .team-grid__pair:last-child:after{content:none}.team-grid__column.winner .team-grid__pair:before{left:-21px;width:21px}.team-grid__column.winner .team-grid__team.winner{border-bottom:none}.team-grid__title{display:flex;flex-direction:column;align-items:center;margin-bottom:44px;padding:13px 0;background-color:rgba(238,237,239,.1);border:1px solid hsla(0,0%,43.9%,.1)}.team-grid__title,.team-grid__title span{color:#707070;font-size:12px;text-transform:uppercase}.team-grid__title span{display:block}.team-grid__title span.main{margin-bottom:8px;color:#1f2021;font-weight:700;font-size:14px;line-height:1.42}.team-grid__teams{display:flex;flex-direction:column;justify-content:center;height:100%;margin-top:auto;margin-bottom:auto}.team-grid__teams.losers{height:auto}.team-grid__team{position:relative;display:flex;align-items:center;width:100%;padding:6px;background-color:#eeedef}.team-grid__team:first-child{border-bottom:1px solid hsla(0,0%,43.9%,.1)}.team-grid__team.winner{font-weight:700}.team-grid__team-icon{max-width:28px;max-height:28px}.team-grid__team-name{margin-left:12px;font-size:14px;line-height:1.21}.team-grid__team-score{margin-left:auto;line-height:1}.team-grid__team a{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%}.team-grid__pair{position:relative}.team-grid__pair:first-child:after{top:calc(50% - 21px);height:70%;border-top:1px solid hsla(0,0%,43.9%,.1)}.team-grid__pair:first-child:after,.team-grid__pair:last-child:after{position:absolute;right:-10px;width:10px;border-right:1px solid hsla(0,0%,43.9%,.1);content:""}.team-grid__pair:last-child:after{top:-20px;height:50%;border-bottom:1px solid hsla(0,0%,43.9%,.1)}.team-grid__pair-wrapp{display:flex;flex-direction:column;justify-content:space-between;margin-bottom:30px}.team-grid__pair-date{margin-top:8px;margin-bottom:20px;color:#707070;font-size:12px;line-height:1.5}.team-grid.four-team-grid .team-grid__column:first-child .team-grid__teams.losers .team-grid__pair:last-child:after{border-right:none}.team-grid.four-team-grid .team-grid__column.finals .team-grid__teams.winners .team-grid__pair:after{top:40px;height:110%;border-bottom:none}.team-grid.four-team-grid .team-grid__column.finals .team-grid__teams.losers .team-grid__pair:after{top:-155px;height:160%;border-top:none}.team-grid.eight-team-grid.team-grid_double .team-grid__teams.losers .team-grid__pair:after{border-top:none;border-right:none}.team-grid.eight-team-grid.team-grid_double .team-grid__column:nth-child(2) .team-grid__teams.winners .team-grid__pair-wrapp{height:100%}.team-grid.eight-team-grid.team-grid_double .team-grid__column:nth-child(2) .team-grid__teams.winners .team-grid__pair{display:flex;flex-direction:column;justify-content:center;height:50%}.team-grid.eight-team-grid.team-grid_double .team-grid__column:nth-child(2) .team-grid__teams.winners .team-grid__pair:first-child:after,.team-grid.eight-team-grid.team-grid_double .team-grid__column:nth-child(2) .team-grid__teams.winners .team-grid__pair:last-child:after{right:-200px;width:200px;height:50%}.team-grid.eight-team-grid.team-grid_double .team-grid__column:nth-child(2) .team-grid__teams.losers .team-grid__pair:first-child:after{top:40px;height:calc(50% + 16px);border-top:1px solid hsla(0,0%,43.9%,.1);border-right:1px solid hsla(0,0%,43.9%,.1);border-bottom:none}.team-grid.eight-team-grid.team-grid_double .team-grid__column:nth-child(2) .team-grid__teams.losers .team-grid__pair-wrapp:last-child .team-grid__pair:after{top:-36px;height:calc(50% + 16px);border-top:none;border-right:1px solid hsla(0,0%,43.9%,.1);border-bottom:1px solid hsla(0,0%,43.9%,.1)}.team-grid.eight-team-grid.team-grid_double .team-grid__column.losers-3{height:430px;margin-top:auto}.team-grid.eight-team-grid.team-grid_double .team-grid__column.losers-3 .team-grid__pair:last-child:after{border-top:none;border-right:none}.team-grid.eight-team-grid.team-grid_double .team-grid__column.finals .team-grid__teams.winners{height:calc(50% - 145px)}.team-grid.eight-team-grid.team-grid_double .team-grid__column.finals .team-grid__teams.winners .team-grid__pair:last-child:after{top:40px;height:210px;border-bottom:none}.team-grid.eight-team-grid.team-grid_double .team-grid__column.finals .team-grid__teams.losers .team-grid__pair:last-child:after{top:auto;bottom:81px;height:333px;border-right:1px solid hsla(0,0%,43.9%,.1)}.team-grid.eight-team-grid.team-grid_double .team-grid__column.grand-finals .team-grid__pair:last-child:after{border-top:none;border-right:none}.team-grid.eight-team-grid.team-grid_double .team-grid__column.last-column .team-grid__team:first-child{border-bottom:none}.team-grid.eight-team-grid.team-grid_double .team-grid__column.last-column .team-grid__pair:last-child:after{content:none}table{min-width:770px;margin-bottom:30px;padding:30px 20px;background-color:#fff;border:none}@media only screen and (max-width:767px){table{min-width:100%}}caption{height:40px;color:#fff;font-weight:700;line-height:40px;background:#24262c}tr td:first-child{padding-left:10px}tr:nth-child(2n){background-color:#f7f7f7}td{min-width:64px;padding-top:10px;padding-bottom:10px;font-size:14px;line-height:1.42;border:none}@media only screen and (max-width:767px){td{padding-right:10px;padding-left:10px}}thead tr{background-color:#f7f7f7}.bracket-double-16{overflow-x:scroll;background:#fff;padding:18px}.bracket-double-16 .bracket{font-size:11px;color:#000;background:transparent;display:table;-webkit-transform-origin:left top 0;transform-origin:left top 0}.bracket-double-16 .bracket *{box-sizing:content-box}.bracket-double-16 .bracket-wrapper{min-height:.01%;pointer-events:auto;padding-bottom:15px}.bracket-double-16 .bracket-scroller{pointer-events:none}.bracket-double-16 .bracket-scroller *{pointer-events:auto}.bracket-double-16 .bracket-column{float:left;position:relative}.bracket-double-16 .bracket-column:not(.bracket-column-matches){margin-left:-.1px}.bracket-double-16 .bracket-header{border-radius:2px;position:relative;left:0;right:0;line-height:18px;margin-bottom:20px;text-align:center;display:flex;flex-direction:column;padding:13px 0;color:#707070;font-size:12px;text-transform:uppercase;background-color:rgba(238,237,239,.1);border:1px solid #f0f0f0}.bracket-double-16 .bracket-header>.main{margin-bottom:8px;color:#1f2021;font-weight:700;font-size:14px;line-height:1.42}.bracket-double-16 .bracket-cell-r1,.bracket-double-16 .bracket-cell-r2,.bracket-double-16 .bracket-cell-r3,.bracket-double-16 .bracket-cell-r4,.bracket-double-16 .bracket-cell-r5{height:41px}.bracket-double-16 .bracket-cell-r6{height:1152px}.bracket-double-16 .bracket-cell-r7{height:2304px}.bracket-double-16 .bracket-cell-r1,.bracket-double-16 .bracket-cell-r2,.bracket-double-16 .bracket-cell-r3,.bracket-double-16 .bracket-cell-r4,.bracket-double-16 .bracket-cell-r5,.bracket-double-16 .bracket-cell-r6,.bracket-double-16 .bracket-cell-r7{position:relative}.bracket-double-16 .bracket-player-bottom,.bracket-double-16 .bracket-player-inner,.bracket-double-16 .bracket-player-middle,.bracket-double-16 .bracket-player-top,.bracket-double-16 .bracket-team-bottom,.bracket-double-16 .bracket-team-inner,.bracket-double-16 .bracket-team-middle,.bracket-double-16 .bracket-team-top{border:none;position:absolute;padding:6px;min-height:20px;line-height:18px;left:0;right:0;display:flex;align-items:center;background-color:#eeedef;font-size:14px}.bracket-double-16 .bracket-player-bottom.winner,.bracket-double-16 .bracket-player-inner.winner,.bracket-double-16 .bracket-player-middle.winner,.bracket-double-16 .bracket-player-top.winner,.bracket-double-16 .bracket-team-bottom.winner,.bracket-double-16 .bracket-team-inner.winner,.bracket-double-16 .bracket-team-middle.winner,.bracket-double-16 .bracket-team-top.winner{font-weight:700}.bracket-double-16 .bracket-player-bottom>a,.bracket-double-16 .bracket-player-inner>a,.bracket-double-16 .bracket-player-middle>a,.bracket-double-16 .bracket-player-top>a,.bracket-double-16 .bracket-team-bottom>a,.bracket-double-16 .bracket-team-inner>a,.bracket-double-16 .bracket-team-middle>a,.bracket-double-16 .bracket-team-top>a{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%}.bracket-double-16 .bracket-player-bottom>.team-grid__team-icon,.bracket-double-16 .bracket-player-inner>.team-grid__team-icon,.bracket-double-16 .bracket-player-middle>.team-grid__team-icon,.bracket-double-16 .bracket-player-top>.team-grid__team-icon,.bracket-double-16 .bracket-team-bottom>.team-grid__team-icon,.bracket-double-16 .bracket-team-inner>.team-grid__team-icon,.bracket-double-16 .bracket-team-middle>.team-grid__team-icon,.bracket-double-16 .bracket-team-top>.team-grid__team-icon{max-width:28px;max-height:28px}.bracket-double-16 .bracket-player-bottom>.team-grid__team-name,.bracket-double-16 .bracket-player-inner>.team-grid__team-name,.bracket-double-16 .bracket-player-middle>.team-grid__team-name,.bracket-double-16 .bracket-player-top>.team-grid__team-name,.bracket-double-16 .bracket-team-bottom>.team-grid__team-name,.bracket-double-16 .bracket-team-inner>.team-grid__team-name,.bracket-double-16 .bracket-team-middle>.team-grid__team-name,.bracket-double-16 .bracket-team-top>.team-grid__team-name{margin-left:12px;font-size:14px;line-height:1.21}.bracket-double-16 .bracket-team-top{border-bottom:1px solid #ddd}.bracket-double-16 .bracket-player-top,.bracket-double-16 .bracket-team-top{bottom:0;border-radius:2px 2px 0 0}.bracket-double-16 .bracket-4ffa .bracket-player-bottom,.bracket-double-16 .bracket-4ffa .bracket-team-bottom{top:24px}.bracket-double-16 .bracket-4ffa .bracket-player-top,.bracket-double-16 .bracket-4ffa .bracket-team-top{bottom:24px}.bracket-double-16 .bracket-player-middle,.bracket-double-16 .bracket-team-middle{bottom:0;border-radius:2px}.bracket-double-16 .bracket-player-inner,.bracket-double-16 .bracket-team-inner{border-radius:0}.bracket-double-16 .bracket-player-top+.bracket-player-inner,.bracket-double-16 .bracket-team-top+.bracket-team-inner{bottom:0}.bracket-double-16 .bracket-team-bottom,.bracket-double-16 .bracket-team-middle,.bracket-double-16 .bracket-team-top{white-space:nowrap;overflow:hidden}.bracket-double-16 .bracket-score{text-align:center;background:#ebebeb;border-left:1px solid #aaa;position:absolute;line-height:22px;right:0;top:0;bottom:0}.bracket-double-16 .bracket-player-bottom .bracket-score,.bracket-double-16 .bracket-team-bottom .bracket-score{border-bottom-right-radius:2px}.bracket-double-16 .bracket-player-bottom .bracket-score,.bracket-double-16 .bracket-team-top .bracket-score{border-top-right-radius:2px}.bracket-double-16 .bracket-player-middle .bracket-score,.bracket-double-16 .bracket-team-middle .bracket-score{border-top-right-radius:2px;border-bottom-right-radius:2px}.bracket-double-16 .bracket-hover{-moz-box-shadow:0 0 2px #000;-webkit-box-shadow:0 0 2px #000;box-shadow:0 0 2px #000;border:1px solid #000!important}.bracket-double-16 .bracket-hover,.bracket-double-16 .bracket-player-bottom,.bracket-double-16 .bracket-player-inner,.bracket-double-16 .bracket-player-middle,.bracket-double-16 .bracket-player-top,.bracket-double-16 .bracket-team-bottom,.bracket-double-16 .bracket-team-inner,.bracket-double-16 .bracket-team-middle,.bracket-double-16 .bracket-team-top,.bracket-double-16 .grouptableslot,.bracket-double-16 .match-row,.bracket-double-16 .matchlistslot{transition:.5s;position:relative;height:41px;box-sizing:border-box}.bracket-double-16 .bracket-popup-title{display:table-row;font-weight:700;line-height:16px;padding:2px 5px}.bracket-double-16 .bracket-popup-title-left{display:table-cell;text-align:right;width:50%;padding:2px;border-bottom:1px solid #aaa}.bracket-double-16 .bracket-popup-title-right{display:table-cell;text-align:left;width:50%;padding:2px;border-bottom:1px solid #aaa}.bracket-double-16 .bracket-icons{border-top:1px solid #aaa}.bracket-double-16 .bracket-game{position:relative;margin-bottom:60px}.bracket-double-16 td.bracket-game{background-clip:padding-box}.bracket-double-16 .bracket-game .icon,.bracket-double-16 .match-row-icon,.bracket-double-16 .table-battleroyale-results .icon{cursor:pointer;height:12px;width:12px;background-image:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2012%2012%22%3E%3Cdefs%3E%3Cstyle%3E.c%7Bfill%3A%23616161%7D.i%7Bfill%3A%23fff%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Ccircle%20class%3D%22c%22%20cx%3D%226%22%20cy%3D%226%22%20r%3D%226%22%2F%3E%3Cpolygon%20class%3D%22i%22%20points%3D%224%205%204%206%205%206%205%209%204%209%204%2010%208%2010%208%209%207%209%207%202%205%202%205%204%207%204%207%205%204%205%22%2F%3E%3C%2Fsvg%3E);background-size:contain;background-repeat:no-repeat;background-color:transparent;position:absolute;image-rendering:-webkit-optimize-contrast}.bracket-double-16 .bracket-game .icon{right:16px}.bracket-double-16 td.bracket-game .icon{right:16px!important}.bracket-double-16 .match-row-icon{left:-11px;top:6px}.bracket-double-16 .bracket-class-icon{width:22px}.bracket-double-16 .table-battleroyale-results-round .icon{right:calc(50% - 5px)}.bracket-double-16 .table-battleroyale-results-round .bracket-popup-wrapper{position:absolute;top:5px;left:calc(50% - 165px)}.bracket-double-16 .bracket-archon-mode .bracket-cell-r1{height:54px}.bracket-double-16 .bracket-archon-mode .bracket-cell-r2{height:108px}.bracket-double-16 .bracket-archon-mode .bracket-cell-r3{height:216px}.bracket-double-16 .bracket-archon-mode .bracket-cell-r4{height:432px}.bracket-double-16 .bracket-archon-mode .bracket-cell-r5{height:864px}.bracket-double-16 .bracket-archon-mode .bracket-cell-r6{height:1728px}.bracket-double-16 .bracket-archon-mode .bracket-cell-r7{height:3456px}.bracket-double-16 .bracket-archon-mode .bracket-player-bottom{border-top-color:#888}.bracket-double-16 .bracket-archon-mode .bracket-player-top{border-bottom-color:#888}.bracket-double-16 .bracket-archon-mode .bracket-score{line-height:40px;font-size:1.25em}.bracket-double-16 .bracket-archon-mode .bracket-popup-title-container{font-size:.85em}.bracket-double-16 .bracket-popup-title .archon-race-icon{line-height:32px}.bracket-double-16 .bracket-popup-title-left .archon-race-icon{float:right;margin-left:5px}.bracket-double-16 .bracket-popup-title-right .archon-race-icon{float:left;margin-right:5px}.bracket-double-16 .bracket-archon-mode .bracket-game .icon{right:33px}.bracket-double-16 .bracket-doubles .bracket-cell-r1{height:54px}.bracket-double-16 .bracket-doubles .bracket-cell-r2{height:108px}.bracket-double-16 .bracket-doubles .bracket-cell-r3{height:216px}.bracket-double-16 .bracket-doubles .bracket-cell-r4{height:432px}.bracket-double-16 .bracket-doubles .bracket-cell-r5{height:864px}.bracket-double-16 .bracket-doubles .bracket-cell-r6{height:1728px}.bracket-double-16 .bracket-doubles .bracket-cell-r7{height:3456px}.bracket-double-16 .bracket-doubles .bracket-score{line-height:38px}.bracket-double-16 .bracket-doubles .bracket-game .icon{right:33px}.bracket-double-16 .bracket-class-icon{float:right;width:20px}.bracket-double-16 .bracket-game span.player-name{display:inline-block;height:17px;overflow:hidden;vertical-align:middle;width:95%}.bracket-double-16 .bracket-game a+span.player-name,.bracket-double-16 .bracket-game img+span.player-name{width:80%}.bracket-double-16 .bracket-line-topleft{border-top-left-radius:0;border:solid #f0f0f0;border-width:1px 0 0 1px}.bracket-double-16 .bracket-line-topright{border-top-right-radius:0;border:solid #f0f0f0;border-width:1px 1px 0 0}.bracket-double-16 .bracket-line-bottomleft{border-bottom-left-radius:0;border:solid #f0f0f0;border-width:0 0 1px 1px}.bracket-double-16 .bracket-line-bottomright{border-bottom-right-radius:0;border:solid #f0f0f0;border-width:0 1px 1px 0}.bracket-double-16 .bracket-line-straight{border-bottom:1px solid #f0f0f0;position:relative}.bracket-double-16 .bracket-line-straight:before{content:"";width:1px;height:1px;background:#f0f0f0;position:absolute;bottom:-1px;left:-1px}.bracket-double-16 .bracket-line-split{border-top:1px solid #f0f0f0}.bracket-double-16 .bracket-line-split-topright-red{border-top-right-radius:0;border:solid red;border-width:1px 1px 0 0}.bracket-double-16 .bracket-line-bottomleft-red{border-bottom-left-radius:0;border:solid red;border-width:0 0 1px 1px}.bracket-double-16 .bracket-line-reset{border-left:1px solid #f0f0f0;line-height:22px;width:4px;float:right}


/*# sourceMappingURL=app.min.css.map*/

/* --- premium-polish override layer (design-audit 2026-07-02) --- */
/* ============================================================================
   NAVI — Premium polish override layer
   Подключается ПОСЛЕДНИМ в app.css (@import). Не трогает index.css/template.css.
   Откат = убрать @import в app.css. Дизайн-аудит 2026-07-02.
   Брендовый жёлтый (решение владельца): #FFEE00 (Pantone Yellow C).
   ============================================================================ */

/* ---------- 0. ТОКЕНЫ (единый источник правды) ------------------------------ */
:root {
  /* Бренд */
  --navi-yellow: #FFEE00;
  --navi-yellow-hover: #E6D600;
  --navi-yellow-ink: #1A191D;          /* текст на жёлтом */
  --navi-red: #F6341E;

  /* Тёмные поверхности (шкала вместо 5 близнецов) */
  --nv-bg: #1A191D;
  --nv-surface-1: #1F2021;
  --nv-surface-2: #27262B;
  --nv-line-dark: rgba(255, 255, 255, .08);

  /* Светлые зоны */
  --nv-zone: #EFEFEF;
  --nv-card: #FFFFFF;
  --nv-card-line: #E5E5E8;

  /* Текст (вторичный зависит от фона) */
  --nv-text-1: #1A191D;
  --nv-text-2-on-light: #55555C;       /* ≥4.9:1 на белом/сером */
  --nv-text-2-on-dark: #A7A7B2;        /* ≥5:1 на тёмном */
  --nv-text-3: #86868E;

  /* Форма */
  --nv-r: 4px;
  --nv-r-pill: 999px;
  --nv-sh-1: 0 1px 2px rgba(20, 20, 24, .08);
  --nv-sh-2: 0 4px 14px rgba(20, 20, 24, .10);
  --nv-sh-3: 0 10px 28px rgba(20, 20, 24, .14);
}

/* ---------- 1. ЕДИНЫЙ БРЕНДОВЫЙ ЖЁЛТЫЙ ------------------------------------- */
/* Приводим все «чужие» жёлтые (#fff200/#fff136/#fff794/#f3e535) к #FFEE00
   на UI-акцентах. Логотип-SVG (свой asset) не трогаем. */
.header__bottom-link_btn,                 /* SHOP */
.header__bottom-list-link.is-shop {
  color: var(--navi-yellow) !important;
}
/* активный пункт меню — жёлтая черта */
.header__bottom-link.active::after,
.header__bottom-link_active::after { background: var(--navi-yellow) !important; }

/* ---------- 2. 📖 ЧИТАЕМОСТЬ ----------------------------------------------- */

/* [P0] Скрим под текстом на фото-карточках хиро (белые заголовки на светлых фото) */
.hero__poster,
.hero__slide { position: relative; }
.hero__poster::after,
.hero__slide::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to top,
    rgba(18, 18, 22, .88) 0%, rgba(18, 18, 22, .45) 38%, rgba(18, 18, 22, 0) 68%);
  pointer-events: none;
  z-index: 1;
}
.hero__poster-title,
.hero__poster-info,
.hero__poster-subtitle { position: relative; z-index: 2; }
.hero__poster-title { text-shadow: 0 1px 4px rgba(0, 0, 0, .5); }

/* [P0] Хиро статьи — усилить нижний скрим + защитить мету */
.publications-hero__content { position: relative; z-index: 2; }
.publications-hero::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to top,
    rgba(26, 25, 29, .85) 0%, rgba(26, 25, 29, .30) 45%, rgba(26, 25, 29, 0) 72%);
  pointer-events: none; z-index: 1;
}
.publications-hero__info { color: rgba(255, 255, 255, .88) !important; text-shadow: 0 1px 3px rgba(0, 0, 0, .5); }

/* [P0 + option A] Блок комментариев — белая подложка (мой ранний transparent
   убирал родной #fff → «висело в сером»). Восстанавливаем белый фон, НЕ трогая
   хрупкую absolute-структуру footer/login (width/margins/position — как в оригинале). */
.comments-block { background: var(--nv-card) !important; min-height: 0 !important; }
.container_flex { align-items: flex-start; }      /* колонки естественной высоты, не растянуты */
.sidebar { position: sticky; top: 80px; align-self: flex-start; }

/* «Log in to post comments» — ТОЛЬКО перекраска (позиционирование как в оригинале):
   был серый #e6e6e6 c серым hover #ccc → прозрачный на белом + жёлтый hover. */
.comments-block__login-url {
  background-color: transparent !important; color: var(--nv-text-1) !important;
  font-weight: 600; transition: background-color .2s, color .2s !important;
}
.comments-block__login-url:hover,
.has-hover .comments-block__login-url:hover {
  background-color: var(--navi-yellow) !important; color: var(--navi-yellow-ink) !important;
}

/* sort «by popularity / by time» — активный = жёлтый маркер (был серый/белый) */
.comments-block__sort-btn {
  border: none !important; background: transparent !important;
  color: var(--nv-text-2-on-light) !important;
}
.comments-block__sort-btn--active {
  color: var(--nv-text-1) !important; background: transparent !important;
  box-shadow: inset 0 -2px 0 var(--navi-yellow);
}
/* «Reply to» — лёгкий жёлтый акцент при наведении */
.has-hover .comment-item__answer:hover span { color: var(--navi-yellow-hover) !important; }
/* лайки/аватар — лёгкий полиш: кольцо у аватара, feedback на лайке, tabular-цифры */
.comment-item__avatar { box-shadow: 0 0 0 1px rgba(0, 0, 0, .08); }
.comment-item__likes-btn { transition: transform .12s; }
.has-hover .comment-item__likes-btn:hover { transform: scale(1.12); }
.comment-item__counter, .comment-item__likes-btn { font-variant-numeric: tabular-nums; }

/* [P1] Вторичный серый: контраст на тёмном/светлом */
.match-item__date { color: var(--nv-text-2-on-light) !important; }

/* [P1] Мера строки статьи: 90 → ~70 символов, воздух */
.content-block_publications { max-width: 72ch; line-height: 1.62; }
.content-block_publications img,
.content-block_publications video,
.content-block_publications iframe,
.content-block_publications figure { max-width: none; }

/* [P1] Клавиатурный фокус — вернуть видимое кольцо (только для клавиатуры) */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
input:focus:not(:focus-visible),
select:focus:not(:focus-visible),
textarea:focus:not(:focus-visible),
[tabindex]:focus:not(:focus-visible) { outline: none; }
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--navi-yellow);
  outline-offset: 2px;
  border-radius: 2px;
}

/* ---------- 3. 🔤 ИЕРАРХИЯ И ТИПОГРАФИКА ----------------------------------- */

/* [P1] Крупнее заголовок хиро статьи */
.publications-hero__title { font-size: clamp(30px, 4vw, 44px); line-height: 1.14; }

/* [P1] Счёт — главный в строке матча */
.match-item__opponent-score,
.match-item__opponent-score-first,
.match-item__opponent-score-second {
  font-size: 20px; font-weight: 700;
  font-variant-numeric: tabular-nums; font-feature-settings: "tnum";
}
.match-item__opponent-name { font-size: 15px; font-weight: 600; }

/* [P2] Разрядка ЗАГЛАВНЫХ */
.header__bottom-link,
.main-title,
.footer__main-title { letter-spacing: .04em; }

/* [P2] Табличные цифры счётам и датам */
.match-item__date,
.hronika-banner-block__score,
.hronika-banner-block__date { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }

/* ---------- 4. ⚔️ МАТЧИ И СТАТУСЫ ------------------------------------------ */

/* [P1] Live-матч — заметен (по существующим классам) */
@keyframes nvPulse { 0% { transform: scale(1); opacity: 1; } 70% { transform: scale(1.9); opacity: 0; } 100% { opacity: 0; } }
.match-item_live,
.matches_live .match-item {
  box-shadow: inset 3px 0 0 var(--navi-yellow);
}
.match-item_live .match-item__date::before,
.match-info_live .match-info__item-score--live::before {
  content: "";
  display: inline-block; width: 7px; height: 7px; margin-right: 7px;
  border-radius: 50%; background: var(--navi-red); vertical-align: middle;
  position: relative;
}
.match-item_live .match-item__date::after {
  content: ""; position: absolute; width: 7px; height: 7px; border-radius: 50%;
  background: var(--navi-red); animation: nvPulse 1.4s ease-out infinite;
}

/* [P1] Статус-бейдж «завершён / ongoing» = тихий чип (не фейк-кнопка) */
.tournament-hero__title-info {
  background: rgba(255, 255, 255, .10) !important;
  color: rgba(255, 255, 255, .82) !important;
  border: 1px solid rgba(255, 255, 255, .22);
  font-size: 12px; letter-spacing: .06em; text-transform: uppercase;
  border-radius: var(--nv-r-pill); padding: 5px 12px;
}

/* [P1] Фильтр игр — fade вместо обрезки + брендовый активный */
.category-block__tabs {
  -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 44px), transparent 100%);
          mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 44px), transparent 100%);
  scroll-snap-type: x proximity;
  padding-right: 44px;
}
.category-block__tab { scroll-snap-align: start; }
.category-block__tab_active { background: var(--navi-yellow) !important; }
.category-block__tab:not(.category-block__tab_active) img { filter: grayscale(.4); opacity: .82; transition: .2s; }
.category-block__tab:not(.category-block__tab_active):hover img { filter: none; opacity: 1; }
/* активный таб турнира — единый жёлтый маркер (был чёрное подчёркивание) */
.tournament-hero__control.is-active { border-bottom-color: var(--navi-yellow) !important; }

/* ---------- 5. 📐 ПУСТОТЫ, РИТМ, ПОВЕРХНОСТИ ------------------------------- */

/* [P1] «Призрачный» SEO-заголовок над футером — тихий титул, не сломанный слой */
.footer__seo-h1 {
  color: rgba(255, 255, 255, .42) !important;
  font-size: 14px; font-weight: 600; letter-spacing: .04em;
  margin-top: 40px; position: relative; z-index: 2;
}

/* [P1] Спонсор-бар — выровнять высоту логотипов (цвета не трогаем) */
.header__top-link img { max-height: 24px; width: auto; object-fit: contain; }

/* [P2] Скроллбар каруселей — тонкая жёлтая линия */
.category-block__tabs,
.hero__slider,
[class*="__wrapp"] { scrollbar-width: thin; scrollbar-color: var(--navi-yellow) rgba(0, 0, 0, .08); }
.category-block__tabs::-webkit-scrollbar,
[class*="__wrapp"]::-webkit-scrollbar { height: 4px; }
.category-block__tabs::-webkit-scrollbar-thumb,
[class*="__wrapp"]::-webkit-scrollbar-thumb { background: var(--navi-yellow); border-radius: 4px; }
.category-block__tabs::-webkit-scrollbar-track,
[class*="__wrapp"]::-webkit-scrollbar-track { background: rgba(0, 0, 0, .06); }

/* [P1] Бейдж «Ongoing» на мобиле — отдельной строкой (не ломает заголовок) */
@media (max-width: 767px) {
  .tournament-hero__title-info { display: block; margin: 8px 0 0; width: max-content; }
}

/* ---------- 6. 🔘 КНОПКИ, КАРТОЧКИ, МЕДИА --------------------------------- */

/* [P1] Серые кнопки-переходы (All news/matches/…) — не «выключенные» */
.btn.gray {
  background: transparent !important;
  border: 1.5px solid var(--nv-text-1);
  color: var(--nv-text-1) !important;
  font-weight: 600;
  border-radius: var(--nv-r);
  transition: background-color .2s, color .2s, transform .1s;
}
.btn.gray:hover {
  background: var(--navi-yellow) !important;
  color: var(--navi-yellow-ink) !important;
  border-color: var(--navi-yellow);
}
.btn.gray:active { transform: translateY(1px); }

/* [P2] Пагинация — активная = жёлтый круг, тач-зона крупнее */
.page-link { min-width: 40px; min-height: 40px; }
.page-link_active {
  background: var(--navi-yellow) !important;
  color: var(--navi-yellow-ink) !important;
  border-radius: 50%;
}
.page-link:not(.page-link_active):hover { background: rgba(0, 0, 0, .06); border-radius: 50%; }

/* [P2] Видео-превью — родной 16:9, градиент только под текстом (не глухая заливка) */
.video-item__img {
  aspect-ratio: 16 / 9; height: auto;
  background-size: cover; background-position: center;
}
.video-item__img::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(0deg, rgba(26, 25, 29, .82) 0%, rgba(26, 25, 29, 0) 55%);
  pointer-events: none;
}

/* ---------- 8. БЛОК B — «Поделиться» + «Читайте также» (статья) ----------- */
.publication-share {
  display: flex; align-items: center; gap: 10px;
  margin: 8px 0 40px;
}
.publication-share__label {
  font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em;
  color: var(--nv-text-2-on-light);
}
.publication-share__btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 50%;
  background: #f0f0f0; color: var(--nv-text-1);
  transition: background-color .2s, transform .1s;
}
.publication-share__btn:hover { background: var(--navi-yellow); transform: translateY(-1px); }
.publication-share__btn:active { transform: translateY(0); }
.publication-share__btn svg { width: 16px; height: 16px; fill: currentColor; }

.related-news { margin: 8px 0 48px; }
.related-news__grid {
  display: grid; grid-template-columns: repeat(3, 1fr);   /* десктоп: 3 карточки */
  gap: 16px; margin-top: 16px;
}
.related-news .news-item:nth-child(n+4) { display: none !important; }  /* десктоп показывает 3 */
/* Родная .news-item — оверлейная (картинка-фон + текст поверх). Для «читайте
   также» переводим в простую вертикальную карточку: превью сверху, текст снизу. */
.related-news .news-item {
  width: auto; float: none; margin: 0; height: auto !important;
  display: flex !important; flex-direction: column !important;
  background: var(--nv-card); border-radius: var(--nv-r); overflow: hidden;
  box-shadow: var(--nv-sh-1);
}
.related-news .news-item__img {
  position: relative !important; width: 100% !important;
  height: 150px !important; min-height: 0 !important;
  min-width: 0 !important; max-width: none !important; flex: 0 0 auto;
}
.related-news .news-item__img::before { display: none !important; }   /* убрать тёмный оверлей */
.related-news .news-item__img_big { height: 100% !important; }
.related-news .news-item__img_big::before { padding-top: 0 !important; }
.related-news .news-item__img .picture,
.related-news .news-item__img .picture__wrapper,
.related-news .news-item__img .picture__img { height: 100% !important; padding-bottom: 0 !important; }
/* только превью-картинка cover; иконка игры (тоже <img> внутри) НЕ трогается */
.related-news .news-item__img .picture img { width: 100%; height: 100%; object-fit: cover; }
.related-news .news-item__icon { width: 22px !important; height: 22px !important; }
.related-news .news-item__content {
  position: static !important; flex: 1 1 auto;
  padding: 12px 14px 16px !important;
}
/* компактно и читаемо: умеренный заголовок в 2 строки, без summary и счётчика */
.related-news .news-item__title {
  color: var(--nv-text-1);
  font-size: 17px !important; line-height: 1.28 !important; font-weight: 700;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.related-news .news-item__description,
.related-news .news-item__comments { display: none !important; }
.related-news .news-item__info { margin-bottom: 8px !important; }
@media (max-width: 767px) {
  .related-news__grid { grid-template-columns: 1fr 1fr; gap: 12px; }   /* мобайл: 2×2 */
  .related-news .news-item:nth-child(n+4) { display: flex !important; } /* показываем 4-ю */
  .related-news .news-item__img { height: 120px !important; }
  .related-news .news-item__title { font-size: 15px !important; }
}

/* [comments] дружелюбный empty-state вместо пустой серой зоны */
.nv-comments-empty {
  padding: 28px 16px; text-align: center;
  color: var(--nv-text-2-on-light); font-size: 15px; font-weight: 500;
}

/* [26] хиро завершённого матча: «VS» вместо дублирующего счёта */
.hronika-banner-block__score_vs { font-size: 48px !important; letter-spacing: .04em; opacity: .9; }
@media (max-width: 767px) {
  .hronika-banner-block__score_vs { font-size: 24px !important; }
}

/* ---------- 7. ДОСТУПНОСТЬ — reduced-motion ------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}


/* --- seo-bugfix overlay (editor bugs + score, 2026-07-03) --- */
/* seo-bugfix (2026-07-03) — appended to the compiled app.min.css by the corp-seo
   Docker overlay (NOT @import'ed into the mix build). Later in the cascade, so these
   rules win over the base + navi-overrides rules with identical selectors. */

/* [editor bug 2] Homepage mobile sidebar rendered BOTH the upcoming and the past
   (history) matches lists stacked as one — editor wants upcoming-only on mobile.
   Hide the history block on mobile, homepage sidebar ONLY. Desktop and every
   standalone/constructor usage of the history list are untouched. */
@media (max-width: 767px) {
  [data-page="home"] .sidebar .matches--history { display: none; }
}

/* [owner request] Make the match-history score a bit smaller and softer
   (our previous override made it 20px/700 — too shouty). */
.match-item__opponent-score,
.match-item__opponent-score-first,
.match-item__opponent-score-second { font-size: 17px; font-weight: 600; }

/* [owner request 2] Kill the "0 comments" flash on news cards. The count is filled
   async by the bundle, so the badge would briefly show "0" before navi-enhance.js
   hides it. Hide the badge from first paint; navi-enhance.js reveals only the ones
   whose count resolves to > 0 (and collapses the zero ones with display:none). */
.news-item__comments { visibility: hidden; }


/* --- editor-batch1+2 overlay (2026-07-03) --- */
/* editor-batch1 (2026-07-03) — редакторские правки, заход 1.
   Аппендится Docker-оверлеем к скомпилированному app.min.css ПОСЛЕ seo-bugfix —
   позже в каскаде, поэтому выигрывает при одинаковых селекторах.
   A1: ближайшие матчи на мобилке — кап 7 + «Показати більше».
   A2/A3: ползунок карусели «Активні турніри» — бренд-жёлтый (в один стиль с таб-полосой).
   A4: карточка турнира в статье — крупнее. Откат = убрать этот слой (retag образа). */

/* ---------- A1: кнопка «Показати більше» для сайдбар-виджета матчей ---------- */
/* База (десктоп >1199px): кнопка скрыта — там кап не действует, видны все матчи. */
.matches__show-more {
  display: none;
  width: 100%;
  margin-top: 12px;
  padding: 11px 16px;
  background: transparent;
  border: 1.5px solid var(--nv-text-1, #1A191D);
  border-radius: var(--nv-r, 4px);
  color: var(--nv-text-1, #1A191D);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: .02em;
  text-align: center;
  cursor: pointer;
  transition: background-color .2s, color .2s, border-color .2s;
}
.has-hover .matches__show-more:hover {
  background: var(--navi-yellow, #FFEE00);
  border-color: var(--navi-yellow, #FFEE00);
  color: var(--navi-yellow-ink, #1A191D);
}
/* На планшете/мобилке (≤1199px, где прячутся элементы 8+) — кнопка видна.
   После разворота (.is-expanded на списке): показываем скрытые элементы и прячем кнопку. */
@media (max-width: 1199px) {
  .matches__show-more { display: block; }
  .matches-list.is-expanded .match-item--hide-mobile { display: -webkit-flex; display: flex; }
  .matches-list.is-expanded .matches__show-more { display: none; }
}

/* ---------- A2 + A3: ползунок карусели «Активні турніри» — бренд-жёлтый ---------- */
/* Тот же #FFEE00, что и жёлтая полоса под таб-фильтрами игр → единый стиль (просьба редактора). */
.main-tournament .swiper-scrollbar-drag {
  background-color: var(--navi-yellow, #FFEE00) !important;
}
.has-hover .main-tournament .swiper-scrollbar:hover .swiper-scrollbar-drag {
  background-color: var(--navi-yellow-hover, #E6D600) !important;
}

/* ---------- A4: карточка турнира в статье — заметно крупнее ---------- */
[data-page="publications"] .tournament-card { width: 100%; }
[data-page="publications"] .tournament-card__img {
  min-width: 280px; max-width: 280px; min-height: 180px;
}
[data-page="publications"] .tournament-card__content { padding: 36px 32px 36px 56px; }
[data-page="publications"] .tournament-card__info-date { font-size: 15px; }
[data-page="publications"] .tournament-card__title { font-size: 30px; line-height: 1.14; }
/* 280/34 = выверено замером: заметно крупнее оригинала (180/28) и блок приза
   («N slots / Online») НЕ обрезается overflow:hidden (при 320px обрезался на 57px). */
@media (max-width: 767px) {
  [data-page="publications"] .tournament-card__img {
    min-width: 130px; max-width: 130px; min-height: 108px;
  }
  [data-page="publications"] .tournament-card__content { padding: 18px 16px 18px 40px; }
  [data-page="publications"] .tournament-card__title { font-size: 22px; }
}

/* ---------- FIX: пустая «Історія матчів» на мобильной главной ----------
   Виджет истории (.matches--history) на мобилке был спрятан целиком (seo-bugfix),
   поэтому таб «ІСТОРІЯ МАТЧІВ» показывал пустоту. Показываем виджет истории, когда
   активен его таб (JS в navi-enhance.js вешает .nv-show-history на .sidebar).
   Логика детерминирована через !important — не зависит от контракторского tab-JS. */
@media (max-width: 767px) {
  [data-page="home"] .sidebar.nv-show-history .matches--history { display: block !important; }
  [data-page="home"] .sidebar.nv-show-history .matches--history .matches-list.completed { display: block !important; }
  [data-page="home"] .sidebar.nv-show-history .matches__mobile:not(.matches--history) .matches-list.forthcoming { display: none !important; }
  [data-page="home"] .sidebar:not(.nv-show-history) .matches__mobile:not(.matches--history) .matches-list.forthcoming { display: block !important; }
}

/* ---------- FIX: статус-бейдж шапки турнира был невидим (регресс дизайн-рефреша) ----------
   navi-overrides.css застилизовал .tournament-hero__title-info как бело-полупрозрачный чип
   в расчёте на ТЁМНЫЙ фон хиро, но контент хиро сидит на БЕЛОЙ поверхности → статус
   («Поточний турнір / Завершено / Майбутній») стал белым-на-белом = невидим. Возвращаем
   видимый тёмный-на-светлом «тихий чип» (позже в каскаде → выигрывает у navi-overrides). */
.tournament-hero__title-info {
  background: rgba(26, 25, 29, .06) !important;
  color: #1A191D !important;
  border: 1px solid rgba(26, 25, 29, .16) !important;
}

/* ---------- B1 «важная новость»: жёлтая рамка вокруг карточки (заход 2) ----------
   Флаг is_featured (админ-чекбокс) → класс .news-item--featured на карточке В СПИСКАХ
   новостей (главная main-news, /новини Vue, «Читайте також»; в hero НЕ метим — просьба
   владельца). Рамка рисуется псевдоэлементом ПОВЕРХ карточки (::after + z-index): обычный
   inset-outline перекрывается собственными детьми карточки (картинка/контент) и почти
   не виден. Не двигает вёрстку (absolute), не клипается. Бренд-жёлтый #FFEE00. */
.news-item--featured { position: relative; }
.news-item--featured::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 5;
  border: 3px solid var(--navi-yellow, #FFEE00);
  border-radius: inherit;
  box-shadow: inset 0 0 14px rgba(255, 238, 0, .5);
  pointer-events: none;
}


/* --- player recent-matches (2026-07-04) --- */
/* --- player recent-matches block (2026-07-04) ---
   Reuses global .match-item widget styles; adds layout for the content column,
   W/L/D result chip and brand-yellow win accent (#FFEE00). */

.player-recent-matches {
    margin-bottom: 48px;
}

.player-recent-matches .main-title {
    margin-bottom: 16px;
}

.player-recent-matches__list .match-item {
    position: relative;
}

/* Win/loss accent as inset shadow — immune to the widget's own border/margin rules. */
.player-recent-matches__item--win .match-item__wrapp {
    box-shadow: inset 3px 0 0 #FFEE00;
}

.player-recent-matches__item--loss .match-item__wrapp {
    box-shadow: inset 3px 0 0 #d3d3d3;
}

.prm-result {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-right: 8px;
    border-radius: 3px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    vertical-align: middle;
}

/* The date row decorates children with "/" separators — never on the chip. */
.match-item__date .prm-result::before,
.match-item__date .prm-result::after {
    content: none !important;
    display: none !important;
}

.prm-result--win {
    background: #FFEE00;
    color: #0d0d0d;
}

.prm-result--loss {
    background: #1f1f1f;
    color: #ffffff;
}

.prm-result--draw {
    background: #9b9b9b;
    color: #111111;
}

.player-recent-matches .matches__btn {
    margin-top: 16px;
}


/* --- tournament card font tweak (2026-07-04) --- */
/* --- tournament card font tweak (editor feedback 2026-07-04): slightly smaller title --- */
[data-page="publications"] .tournament-card__info-date { font-size: 14px; }
[data-page="publications"] .tournament-card__title { font-size: 26px; line-height: 1.16; }
@media (max-width: 767px) {
    [data-page="publications"] .tournament-card__title { font-size: 19px; }
}

/* ============================================================================
/* EDITOR_BATCH2_START */
/* ============================================================================
   NAVI — editor-batch2 (2026-07-09) — Kirill's feedback batch, premium polish.
   Appended AFTER app.min.css (like editor-batch1). Tokens from navi-overrides.css
   (--navi-yellow #FFEE00, --navi-yellow-hover #E6D600). All motion respects
   prefers-reduced-motion. Rollback = drop this file from the append + bump hash.
   ============================================================================ */

/* -- #1 History page: yellow custom scrollbar thumb (was #b6b7b9) -------------- */
.about-history__aside-slider {
    background-color: var(--navi-yellow) !important;
    border-radius: 999px;
    box-shadow: 0 0 0 1px rgba(0,0,0,.06), 0 0 10px rgba(255,238,0,.45);
    cursor: grab;
    transition: box-shadow .2s ease, transform .2s ease;
}
.about-history__aside-slider:hover { box-shadow: 0 0 0 1px rgba(0,0,0,.06), 0 0 16px rgba(255,238,0,.7); transform: scaleX(1.25); }
.about-history__aside-slider.is-dragging { cursor: grabbing; box-shadow: 0 0 0 1px rgba(0,0,0,.06), 0 0 18px rgba(255,238,0,.85); transform: scaleX(1.25); }
.about-history__aside-range { cursor: pointer; }

/* -- #2 Teams page: yellow scrollbar on the team-logo scroller ---------------- */
.teams-block__controls { scrollbar-width: thin; scrollbar-color: var(--navi-yellow) transparent; }
.teams-block__controls::-webkit-scrollbar { height: 6px; }
.teams-block__controls::-webkit-scrollbar-track { background: transparent; }
.teams-block__controls::-webkit-scrollbar-thumb {
    background: var(--navi-yellow);
    border-radius: 999px;
    transition: background-color .18s ease;
}
.teams-block__controls::-webkit-scrollbar-thumb:hover { background: var(--navi-yellow-hover); }

/* -- #7 Team section: discipline name on one line ("League of Legends") ------- */
.block-team__game { white-space: nowrap; max-width: none; }
@media (max-width: 767px) { .block-team__game { white-space: normal; } } /* phones: allow wrap, avoid overflow */

/* -- #6 Static pages (privacy / terms / careers): text to full block width ----- */
[data-page="pages"] .content-block_publications { max-width: 100%; width: 100%; }
[data-page="pages"] .content-block_publications p,
[data-page="pages"] .content-block_publications li,
[data-page="pages"] .content-block_publications h1,
[data-page="pages"] .content-block_publications h2,
[data-page="pages"] .content-block_publications h3 { max-width: 100%; }

/* -- #4 Important matches: yellow frame on featured match cards (mirrors news) -- */
.match-item--featured { position: relative; }
.match-item--featured::after {
    content: ""; position: absolute; inset: 0; z-index: 5;
    border: 3px solid var(--navi-yellow); border-radius: inherit;
    box-shadow: inset 0 0 14px rgba(255,238,0,.5);
    pointer-events: none;
}

/* -- #3 Footer socials: drop "Спасибо…" + network names, bigger icons, premium hover -- */
.footer__main-social-info { display: none; } /* remove "Спасибо, что вы с нами" */
.footer__main-social-link span { /* hide network name visually, keep it as the link's accessible name */
    position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.footer__main-social-link { transition: transform .2s cubic-bezier(.2,.7,.3,1); }
.footer__main-social-link > svg { width: 40px; height: 40px; max-width: 40px; max-height: 40px; transition: color .18s ease, filter .2s ease; }
.footer__main-social-link:hover { transform: translateY(-3px); }
.footer__main-social-link:hover > svg { color: var(--navi-yellow); filter: drop-shadow(0 0 10px rgba(255,238,0,.55)); }
.footer__main-social-links { gap: 24px; flex-wrap: wrap; }
@media (max-width: 767px) { .footer__main-social-link > svg { width: 34px; height: 34px; max-width: 34px; max-height: 34px; } }

/* -- #8 Team staff (coach / analysts): separate compact block, not player cards -- */
.command-staff { margin-top: 30px; }
.command-staff .main-title { margin-bottom: 16px; }
.command-staff__body { display: flex; flex-wrap: wrap; gap: 14px; }
.staff-card {
    display: flex; align-items: center; gap: 14px;
    min-width: 244px; padding: 12px 18px 12px 12px;
    background: var(--nv-surface-1, #1F2021);
    border: 1px solid var(--nv-line-dark, rgba(255,255,255,.08));
    border-radius: 8px; text-decoration: none;
    transition: transform .2s cubic-bezier(.2,.7,.3,1), border-color .2s ease, box-shadow .2s ease;
}
.staff-card:hover { transform: translateY(-3px); border-color: var(--navi-yellow, #FFEE00); box-shadow: 0 8px 22px rgba(0,0,0,.28); }
.staff-card__img { width: 56px; height: 56px; flex: 0 0 56px; border-radius: 50%; overflow: hidden; background: var(--nv-surface-2, #27262B); }
.staff-card__img img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.staff-card__role { font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--navi-yellow, #FFEE00); margin-bottom: 2px; }
.staff-card__nickname { display: flex; align-items: center; gap: 6px; font-size: 16px; font-weight: 700; color: #fff; line-height: 1.2; }
.staff-card__nickname svg, .staff-card__nickname img { width: 18px; height: 13px; border-radius: 2px; flex: 0 0 auto; }
.staff-card__name { font-size: 12px; color: var(--nv-text-2-on-dark, #A7A7B2); margin-top: 3px; }
@media (max-width: 767px) { .staff-card { min-width: 100%; } }

@media (prefers-reduced-motion: reduce) {
    .about-history__aside-slider,
    .staff-card,
    .teams-block__controls::-webkit-scrollbar-thumb,
    .footer__main-social-link,
    .footer__main-social-link > svg { transition: none !important; }
    .about-history__aside-slider:hover,
    .staff-card:hover,
    .footer__main-social-link:hover { transform: none; }
}

/* ===========================================================================
   Design-audit 2026-07-16 — applied fixes (block A)
   =========================================================================== */

/* [A1][P0] "Download config" is the ONE .btn.gray that lives on the DARK player hero.
   The premium layer paints .btn.gray with dark ink for LIGHT sections, so here it rendered
   #1A191D on #1A191D — measured contrast 1.00:1, i.e. invisible. Scoped light variant;
   hover keeps the shared canon (yellow fill + ink text). */
.player-info__participant-btn .btn.gray {
    border-color: rgba(255, 255, 255, .45);
    color: #fff !important;
}
.player-info__participant-btn .btn.gray:hover {
    background: var(--navi-yellow) !important;
    color: var(--navi-yellow-ink) !important;
    border-color: var(--navi-yellow);
}

/* [A2][P1] Footer socials monochrome by default, full brand colour on hover.
   The icons are sprite <use> refs whose fills are hard-coded (#9122AD, #2AABEE, red, …),
   so `color`/`fill` cannot recolour them — grayscale() is the one lever that works, and it
   keeps the white glyph readable. The existing :hover rule sets `filter: drop-shadow(...)`
   without grayscale, so colour returns on hover for free. */
.footer__main-social-link > svg { filter: grayscale(1); }

/* [A3] REVERTED 2026-07-16 — owner prefers the icons spread across the full footer width
   ("на всю ширину смотрелось приятней"). My audit read the edge-to-edge `space-between` from
   index.css as an unfinished look; that was my taste, not a defect. Left to index.css. */

/* [B1][P1] X (Twitter) profile link replacing the dead timeline embed
   (see client/constructor/components/twitter/show.blade.php). The sidebar it lives in is WHITE,
   so this is dark-on-light — do not copy the dark-hero treatment from A1 here. */
.x-profile {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border: 1.5px solid rgba(26, 25, 29, .22);
    border-radius: var(--nv-r, 8px);
    text-decoration: none;
    transition: border-color .2s ease, background-color .2s ease, transform .1s ease;
}
.x-profile:hover { border-color: var(--navi-yellow); background: rgba(255, 238, 0, .14); }
.x-profile:active { transform: translateY(1px); }
.x-profile__icon { width: 22px; height: 22px; flex: 0 0 22px; }
.x-profile__handle { font-weight: 600; font-size: 15px; color: var(--nv-text-1, #1A191D); }

/* [B3][P1] Sidebar "Upcoming matches" hard-truncated its own content: the 329px column left the
   opponent name 89px against the 93-98px it needs ("Team Vital…", "Gentle Ma…"), and crushed the
   stage to 40px of the 69px "Group Stage" ("Grou…"). Scoped to .sidebar so the wide /matches
   layout is untouched: reclaim the icon's margin and let both labels wrap instead of clipping.
   [B3b, owner 2026-07-16] Wrapping alone made the row height jump (82/96/104) — two independent
   causes: the tournament line wraps only for long names (VCT/LEC, not MLBB), and the two widest
   opponents ("Karmine Corp" needs 98px, "Gentle Mates" 95px) exceed the 93px box. Chasing those
   5px by shrinking the icon/"vs" column would break again on the next long team name, so instead
   the row rhythm is pinned: reserve the 2-line tournament and give every row one height.
   [B3c, owner-chosen 2026-07-16] Root cause of the wrapping was the 50/50 grid: 119.5px per side,
   although the left side is ALWAYS a short NAVI/NAVI PH (~60px) while the opponent needs up to 98px
   ("Karmine Corp"). Half the left column sat unused. Size the left column to its content and give
   the remainder (~180px) to the opponent → names fit on one line, no wrap, no clamp, and the row
   drops to a single 96px. Rejected the owner's first idea of dropping the NAVI side entirely:
   3 of 12 fixtures are NAVI PH and the game icon cannot tell them apart (both MLBB).
   The tournament line still needs 2 lines for VCT/LEC, so 96px — not the old 82px — is the floor
   unless "Group Stage" goes back to being truncated. Measured after: 12/12 rows = 96px, 0 clipped. */
/* ⚠ The middle column must be `auto`, NOT a fixed width: the same .match-item markup carries "vs"
   in Upcoming matches (26px) but a SCORE in Match history (36px) — hard-coding 26px made the score
   overflow onto the opponent's logo (owner-reported 2026-07-16). Size every column to its content. */
.sidebar .match-item__opponents { grid-template-columns: auto auto 1fr; }
.sidebar .match-item__opponent-icon { margin-right: 4px; }
.sidebar .match-item__opponent-name {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; /* safety net only — with ~180px none of the real names come close */
}
.sidebar .match-item__date { flex-wrap: wrap; min-height: 28px; }
.sidebar .match-item__league-stage {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
}
.sidebar .match-item { min-height: 96px; }

/* --- editor-batch2 bracket layer (2026-07-17, r17) --- */
/* ---------- 9. Editor batch 2 — WYSIWYG bracket templates (2026-07-17) -----
   These selectors also reach the frozen bracket copies stored in
   editor_translations content (WYSIWYG paste freezes markup, classes survive):
   equal header heights (the editor strips the subtitle span, collapsing some
   headers to one line), no score "0" on the final WINNER cell, DE8 LOSERS'
   ROUND 3 column top-aligned with LOSERS' FINAL. DE16 WINNER column itself is
   markup-only (new inserts). px values frozen by the local render harness.  */
.team-grid__title {
  /* live-measured: natural 2-line title = 75.3px, stripped-span copies ~74px.
     No justify-content override: single-line titles keep the default
     flex-start so their main text top-aligns with two-line neighbours
     (14.3px from the top) instead of floating mid-box. */
  min-height: 76px;
}
/* NOTE: no rule for .bracket-double-16 .bracket-header on purpose — DE16 uses
   box-sizing:content-box (min-height would inflate 73.9 -> 102) and its frozen
   headers are already uniform; the new WINNER header holds height via an
   inline content-box min-height in the template instead. */
.team-grid__column.winner .team-grid__team-score,
.team-grid__column.last-column .team-grid__team-score {
  display: none;
}
.team-grid.eight-team-grid.team-grid_double .team-grid__column.losers-3 {
  /* live-tuned: LOSERS' ROUND 3 header top == LOSERS' FINAL header top */
  height: 377px;
}

/* ---------- 10. Editor batch 2 — tournament standings skin (2026-07-17) ---
   Premium skin for the WYSIWYG group-stage tables on tournament pages
   (owner reference: rank chips, NAVI row highlight, technical caps header).
   Markup is editor-made (<table border=1> with inline widths/heights) —
   hence the !important overrides. Classes come from navi-enhance
   decorateStandings(); article tables (no .nv-standings) are untouched. */
.content-wrapper .content-block_publications:has(table.nv-standings) {
  /* legacy max-width leaves this block 12.5px short of the hero/tabs cards —
     let it fill the wrapper so all card edges align vertically */
  max-width: 100%;
}
table.nv-standings {
  width: 100% !important;
  height: auto !important;
  border: none !important;
  border-collapse: separate !important;
  border-spacing: 0;
  background: #fff;
}
table.nv-standings caption {
  text-align: left;
  padding: 0 0 16px;
  background: none !important;   /* legacy .table-block caption paints a
                                    full-width dark bar; the cap span below
                                    is the only dark chip we want */
  color: inherit !important;
}
table.nv-standings .nv-standings__cap {
  display: inline-block;
  padding: 12px 20px 10px;
  background: #1A191D;
  color: #fff;
  font-family: "Navi", arial, sans-serif;
  font-size: 14px;
  line-height: 1;
  letter-spacing: .14em;
  text-transform: uppercase;
}
table.nv-standings td {
  border: none !important;
  height: auto !important;
}
table.nv-standings thead td {
  padding: 14px 12px !important;
  color: #86868E;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  border-bottom: 1px solid #E5E5E8 !important;
}
table.nv-standings thead td:first-child {
  text-align: left !important;
}
table.nv-standings thead td strong {
  font-weight: 600;
}
table.nv-standings tbody td {
  padding: 17px 12px;
  font-size: 15px;
  line-height: 1.2;
  vertical-align: middle;
  background: #fff !important;   /* kill the legacy zebra striping */
  border-bottom: 1px solid #EFEFF1 !important;
  font-variant-numeric: tabular-nums;
}
table.nv-standings tbody tr:last-child td {
  border-bottom: none !important;
}
table.nv-standings tbody td:first-child {
  font-weight: 700;
}
table.nv-standings tbody td:first-child img {
  width: 28px !important;
  height: 28px !important;
  margin-right: 12px;
  vertical-align: middle;
}
table.nv-standings tbody {
  counter-reset: nv-rank;
}
table.nv-standings tbody td:first-child::before {
  counter-increment: nv-rank;
  content: counter(nv-rank);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  margin-right: 14px;
  background: #EFEFEF;
  color: #55555C;
  font-size: 12px;
  font-weight: 700;
  vertical-align: middle;
}
table.nv-standings tbody tr:nth-child(1) td:first-child::before {
  background: var(--navi-yellow);
  color: var(--navi-yellow-ink);
}
table.nv-standings tbody tr:nth-child(2) td:first-child::before {
  background: rgba(255, 238, 0, .35);
  color: var(--navi-yellow-ink);
}
table.nv-standings tr.nv-standings__me td {
  background: #FFFDE0 !important;
}
table.nv-standings tr.nv-standings__me td:first-child {
  box-shadow: inset 3px 0 0 var(--navi-yellow);
}
table.nv-standings td.nv-pos {
  font-weight: 700;
}
table.nv-standings td.nv-zero {
  color: #B6B6BE;
}
table.nv-standings.nv-noranks tbody td:first-child::before {
  /* the table carries its own place column (or has no thead) — no auto chips */
  content: none;
}
table.nv-standings tr.nv-headrow td {
  padding: 14px 12px !important;
  background: #fff !important;
  color: #86868E;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  border-bottom: 1px solid #E5E5E8 !important;
}
table.nv-standings tr.nv-headrow td strong {
  font-weight: 600;
}
table.nv-standings tr.nv-headrow td:first-child {
  text-align: left !important;
}
@media (max-width: 767px) {
  table.nv-standings thead td { padding: 10px 8px !important; font-size: 10px; letter-spacing: .1em; }
  table.nv-standings tbody td { padding: 12px 8px; font-size: 13px; }
  table.nv-standings tbody td:first-child::before { width: 22px; height: 22px; margin-right: 8px; }
  table.nv-standings tbody td:first-child img { width: 22px !important; height: 22px !important; margin-right: 8px; }
}

/* ---------- 11. Editor batch 2 — bracket card skin (2026-07-17) -----------
   Premium card look for every team-grid bracket (owner reference): white
   match cards, yellow winner-score chips, greyed losers, logo tiles, flat
   caps column headers, NAVI row highlight + Q-chips on QUALIFIED cards.
   Classes come from navi-enhance decorateBracketCards(); connectors are the
   SVG overlay (grey rounded elbows / yellow NAVI path / dashed drop). */
.team-grid.nv-skin .team-grid__column {
  min-width: 220px;
  max-width: 220px;
}
.team-grid.nv-skin .team-grid__pair {
  height: auto !important;   /* band-height pairs (50% flex slots) would
                                stretch the card over the whole band */
  background: #fff;
  border: 1px solid #E7E7EA;
  border-radius: 8px;
  overflow: hidden;
}
.team-grid.nv-skin .team-grid__pair + .team-grid__pair {
  margin-top: 14px;
}
.team-grid.nv-skin .team-grid__pair-wrapp {
  justify-content: space-around;   /* auto-height cards distribute over the
                                      fixed band instead of hugging its top */
}
.team-grid.nv-skin .team-grid__team {
  background: transparent;
  padding: 9px 12px;
}
.team-grid.nv-skin .team-grid__team:first-child {
  border-bottom: 1px solid #F0F0F2;
}
.team-grid.nv-skin .team-grid__team-icon {
  width: 30px !important;
  height: 30px !important;
  max-width: 30px;
  max-height: 30px;
  padding: 4px;
  background: #F4F4F6;
  border-radius: 7px;
  box-sizing: border-box;
  object-fit: contain;
}
.team-grid.nv-skin .team-grid__team-name {
  margin-left: 12px;
  color: #1A191D;
  font-weight: 700;
  font-size: 14px;
}
.team-grid.nv-skin .nv-lose .team-grid__team-name,
.team-grid.nv-skin .nv-lose strong {
  color: #9A9AA2;
  font-weight: 600;
}
.team-grid.nv-skin .team-grid__team-score {
  min-width: 28px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: auto;
  color: #9A9AA2;
  font-weight: 700;
  font-size: 13px;
}
.team-grid.nv-skin .nv-win .team-grid__team-score {
  background: var(--navi-yellow);
  color: var(--navi-yellow-ink);
  border-radius: 6px;
}
.team-grid.nv-skin .nv-me-row {
  background: #FFFBDD;
  box-shadow: inset 3px 0 0 var(--navi-yellow);
}
.team-grid.nv-skin .team-grid__title {
  min-height: 0;
  margin-bottom: 14px;
  padding: 0;
  align-items: flex-start;
  text-align: left;
  color: #A5A5AD;
  font-size: 10px;
  letter-spacing: .16em;
  background: none;
  border: none;
}
.team-grid.nv-skin .team-grid__title span {
  color: #A5A5AD;
  font-size: 10px;
  letter-spacing: .16em;
}
.team-grid.nv-skin .team-grid__title span.main {
  margin-bottom: 3px;
  color: #55555C;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .18em;
  line-height: 1.3;
}
.team-grid.nv-skin .team-grid__team[data-q]::before {
  content: attr(data-q);
  display: inline-block;
  margin-right: 10px;
  padding: 4px 7px;
  background: var(--navi-yellow);
  color: var(--navi-yellow-ink);
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
}
.team-grid.nv-skin .team-grid__pair-date {
  margin: 6px 0 0;
  padding: 0 12px 8px;
  color: #A5A5AD;
  font-size: 11px;
}
.team-grid.nv-skin .team-grid__team.nv-hl-row {
  background: #FFFBDD;
  box-shadow: inset 3px 0 0 var(--navi-yellow);
}
.team-grid.nv-skin .team-grid__team {
  cursor: default;
}
@media (max-width: 767px) {
  .team-grid.nv-skin .team-grid__column { min-width: 190px; max-width: 190px; margin-right: 16px; }
  .team-grid.nv-skin .team-grid__team { padding: 8px 10px; }
  .team-grid.nv-skin .team-grid__team-name { margin-left: 10px; font-size: 13px; }
  .team-grid.nv-skin .team-grid__team-icon { width: 26px !important; height: 26px !important; max-width: 26px; max-height: 26px; padding: 3px; }
  .team-grid.nv-skin .team-grid__team-score { min-width: 24px; height: 22px; font-size: 12px; }
  .team-grid.nv-skin .team-grid__title span.main { font-size: 11px; letter-spacing: .14em; }
}

/* ---------- 12. Editor batch 2 — DE16 bracket skin (2026-07-17) ------------
   The 16-team double-elim template is a pixel-positioned WYSIWYG export
   (inline px, absolute cells, hand-tuned connector divs, content-box) — the
   skin must not move ANY box: shadows instead of borders, colors only. */
.bracket-double-16.nv-skin16 .bracket-game {
  position: relative;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 0 0 1px #E7E7EA;
}
.bracket-double-16.nv-skin16 .bracket-team-top,
.bracket-double-16.nv-skin16 .bracket-team-bottom,
.bracket-double-16.nv-skin16 .bracket-team-inner {
  background: transparent;
  color: #1A191D;
  font-weight: 700;
}
.bracket-double-16.nv-skin16 .bracket-team-top {
  box-shadow: inset 0 -1px 0 #F0F0F2;
}
.bracket-double-16.nv-skin16 .nv-lose,
.bracket-double-16.nv-skin16 .nv-lose .team-grid__team-name {
  color: #9A9AA2;
  font-weight: 600;
}
.bracket-double-16.nv-skin16 .team-grid__team-score {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 20px;
  margin-left: auto;
  color: #9A9AA2;
  font-weight: 700;
  font-size: 12px;
  line-height: 1;
}
.bracket-double-16.nv-skin16 .nv-win .team-grid__team-score {
  background: var(--navi-yellow);
  color: var(--navi-yellow-ink);
  border-radius: 5px;
}
.bracket-double-16.nv-skin16 .nv-me-row {
  background: #FFFBDD;
  box-shadow: inset 3px 0 0 var(--navi-yellow);
}
.bracket-double-16.nv-skin16 .team-grid__team-icon {
  width: 26px;
  height: 26px;
  max-width: 26px;
  max-height: 26px;
  padding: 3px;
  background: #F4F4F6;
  border-radius: 6px;
  box-sizing: border-box !important;
}
.bracket-double-16.nv-skin16 .bracket-header {
  align-items: flex-start;
  text-align: left;
  background: none;
  border-color: transparent;   /* keep the 1px box so heights don't move */
}
.bracket-double-16.nv-skin16 .bracket-header > .main {
  color: #55555C;
  font-weight: 700;
  letter-spacing: .12em;
  white-space: nowrap;   /* long titles must not wrap — pixel geometry;
                            keep the original 14px so heights stay put */
}
.bracket-double-16.nv-skin16 .bracket-header > span:not(.main) {
  color: #A5A5AD;
  font-size: 10px;
  letter-spacing: .16em;
}
.bracket-double-16.nv-skin16 [class*=bracket-line] {
  border-color: #DCDCE1 !important;
}
.bracket-double-16.nv-skin16 .bracket-team-top,
.bracket-double-16.nv-skin16 .bracket-team-bottom,
.bracket-double-16.nv-skin16 .bracket-team-inner {
  cursor: default;   /* the container drag-scroll keeps its grab cursor */
}
.bracket-double-16.nv-skin16 .nv-hl-row {
  background: #FFFBDD !important;
  box-shadow: inset 3px 0 0 var(--navi-yellow);
}
.bracket-double-16.nv-skin16 .bracket {
  background: none;
  border: none;
}
.bracket-double-16.nv-skin16::-webkit-scrollbar {
  height: 8px;
}
.bracket-double-16.nv-skin16::-webkit-scrollbar-thumb {
  background: #DCDCE1;
  border-radius: 4px;
}
.bracket-double-16.nv-skin16::-webkit-scrollbar-track {
  background: transparent;
}

/* ---------- 13. Editor batch 2 — match lists + publication content (r8) ----
   Owner + editor requests 2026-07-17: (a) match meta always two lines —
   date/time on the first, tournament + stage on the second; (b) win/lose
   score colors (classes from navi-enhance colorMatchScores); (c) WYSIWYG
   bulleted/numbered lists render on publication pages (a global reset strips
   markers); (d) publication text column widened to the tournament-card /
   related-news width. */
.match-item__date span[data-timezone] {
  display: block;
  width: 100%;
  margin-bottom: 2px;
}
.match-item__date span[data-timezone]::after {
  content: none;
}
.match-item__opponent-score .nv-s-win {
  color: #1FA65A;
}
.match-item__opponent-score .nv-s-lose {
  color: var(--navi-red);
}
.content-block ul:not([class]),
.content-block ol:not([class]) {
  margin: 0 0 20px;
  padding-left: 26px;
}
.content-block ul:not([class]) {
  list-style: disc outside;
}
.content-block ol:not([class]) {
  list-style: decimal outside;
}
.content-block ul:not([class]) li,
.content-block ol:not([class]) li {
  margin: 0 0 8px;
  padding-left: 4px;
  list-style: inherit;
}
.content-block ul:not([class]) li::marker {
  color: var(--navi-yellow);
}
.content-block ol:not([class]) li::marker {
  color: #55555C;
  font-weight: 700;
}
[data-page="publications"] .content-block,
[data-page="old-publications"] .content-block {
  max-width: 100%;
}

/* clickable bracket match cards (nv-click set by linkBracketMatches) */
.team-grid.nv-skin .team-grid__pair.nv-click,
.bracket-double-16.nv-skin16 .bracket-game.nv-click,
.team-grid.nv-skin .team-grid__pair.nv-click .team-grid__team,
.bracket-double-16.nv-skin16 .bracket-game.nv-click .bracket-team-top,
.bracket-double-16.nv-skin16 .bracket-game.nv-click .bracket-team-bottom,
.bracket-double-16.nv-skin16 .bracket-game.nv-click .bracket-team-inner {
  cursor: pointer;
}
.team-grid.nv-skin .team-grid__pair.nv-click:hover {
  border-color: #C9C9CF;
}
.bracket-double-16.nv-skin16 .bracket-game.nv-click:hover {
  box-shadow: 0 0 0 1px #C9C9CF;
}

/* editor feedback 2026-07-17: on narrower windows the fixed 280px tournament
   card image ate the info block. Scale with the card (34%, 200-280px) on
   desktop/tablet; the <=767px batch1 rule (130px) stays as is. */
@media (min-width: 768px) {
  [data-page="publications"] .tournament-card__img {
    min-width: clamp(200px, 34%, 280px);
    max-width: clamp(200px, 34%, 280px);
  }
}

/* bracket zoom controls */
.nv-zoom {
  display: flex;
  width: 100%;
  justify-content: flex-end;
  align-items: center;
  gap: 6px;
  margin: 0 0 10px;
}
.nv-zoom__btn {
  width: 28px;
  height: 28px;
  border: 1px solid #E0E0E4;
  background: #fff;
  color: #1A191D;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  border-radius: 6px;
}
.nv-zoom__btn:hover {
  border-color: #C9C9CF;
}
.nv-zoom__val {
  min-width: 42px;
  text-align: center;
  color: #86868E;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .08em;
}

/* ---------- 14. Editor batch 2 — System A round-grid skin (2026-07-17) ----
   Abios-driven brackets (tournament /playoff and /groups tabs). Same card
   language as the WYSIWYG skins; winner classes are server-rendered. */
.round-grid.nv-skinrg .round-grid__round-header {
  background: none;
  border: none;
  padding: 0 0 12px;
  text-align: left;
}
.round-grid.nv-skinrg .round-grid__round-title {
  color: #55555C;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.round-grid.nv-skinrg .round-grid__round-subtitle {
  color: #A5A5AD;
  font-size: 10px;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.round-grid.nv-skinrg .round-grid__round-match-link {
  display: block;
  background: #fff;
  border: 1px solid #E7E7EA;
  border-radius: 8px;
  overflow: hidden;
}
.round-grid.nv-skinrg .round-grid__round-match-link:hover {
  border-color: #C9C9CF;
}
.round-grid.nv-skinrg .round-grid__round-team {
  background: transparent;
  padding: 9px 12px;
}
.round-grid.nv-skinrg .round-grid__round-team:first-child {
  border-bottom: 1px solid #F0F0F2;
}
.round-grid.nv-skinrg .round-grid__round-team-icon img {
  width: 30px !important;
  height: 30px !important;
  padding: 4px;
  background: #F4F4F6;
  border-radius: 7px;
  box-sizing: border-box;
  object-fit: contain;
}
.round-grid.nv-skinrg .round-grid__round-team-name {
  color: #1A191D;
  font-weight: 700;
  font-size: 14px;
}
.round-grid.nv-skinrg .round-grid__round-match-link:has(.round-grid__round-team.winner) .round-grid__round-team:not(.winner) .round-grid__round-team-name {
  color: #9A9AA2;
  font-weight: 600;
}
.round-grid.nv-skinrg .round-grid__round-team-score {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 24px;
  color: #9A9AA2;
  font-weight: 700;
  font-size: 13px;
}
.round-grid.nv-skinrg .round-grid__round-team.winner .round-grid__round-team-score {
  background: var(--navi-yellow);
  color: var(--navi-yellow-ink);
  border-radius: 6px;
}
.round-grid.nv-skinrg .round-grid__round-team.nv-me-row,
.round-grid.nv-skinrg .round-grid__round-team.nv-hl-row {
  background: #FFFBDD;
  box-shadow: inset 3px 0 0 var(--navi-yellow);
}
.round-grid.nv-skinrg .round-grid__round-match-shedule {
  color: #A5A5AD;
  font-size: 11px;
}
.round-grid.nv-skinrg .round-grid__round-match-connector,
.round-grid.nv-skinrg .round-grid__round-match-endconnector,
.round-grid.nv-skinrg .round-grid__connector {
  border-color: #DCDCE1 !important;
}

/* ---------- 15. Editor batch 2 — Abios groups tab (tournament-groups) ----- */
.tournament-groups__table {
  background: #fff;
  border: 1px solid #E7E7EA;
  border-radius: 8px;
  overflow: hidden;
}
.tournament-groups__table-header {
  background: #fff;
  color: #86868E;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  border-bottom: 1px solid #E5E5E8;
}
.tournament-groups__table-header-label {
  color: #55555C;
  font-weight: 700;
}
.tournament-groups__table-team {
  background: #fff;
  border-bottom: 1px solid #F0F0F2;
}
.tournament-groups__table-team:last-child {
  border-bottom: none;
}
.tournament-groups__table-team-icon img {
  width: 28px !important;
  height: 28px !important;
  padding: 3px;
  background: #F4F4F6;
  border-radius: 6px;
  box-sizing: border-box;
  object-fit: contain;
}
.tournament-groups__table-team-name {
  color: #1A191D;
  font-weight: 700;
}
.tournament-groups__table-team.nv-me-row {
  background: #FFFBDD;
  box-shadow: inset 3px 0 0 var(--navi-yellow);
}
.tournament-groups__title {
  color: #55555C;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.tournament-groups__match-result {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

/* r14 polish: clickable league name, round-grid dates, neutral Abios plate */
a.match-item__league-name.nv-league-link {
  position: relative;
  z-index: 4;
}
.has-hover a.match-item__league-name.nv-league-link:hover {
  color: #1A191D;
  box-shadow: inset 0 -2px 0 var(--navi-yellow);
}
.round-grid.nv-skinrg .round-grid__round-match-shedule {
  margin-top: 6px;
  padding-left: 4px;
  color: #A5A5AD;
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.round-grid.nv-skinrg .round-grid__round-match {
  position: relative;
}
.round-grid.nv-skinrg .round-grid__round-match-shedule {
  position: absolute;
  top: -22px;
  left: 4px;
  margin: 0;
}
a.match-item__league-name.nv-league-link,
.match-item__league-stage.nv-league-link {
  position: relative;
  z-index: 4;
  cursor: pointer;
}
a.match-item__league-name.nv-league-link:hover,
.match-item__league-stage.nv-league-link:hover {
  color: #1A191D;
  box-shadow: inset 0 -2px 0 var(--navi-yellow);
}

/* nv-hero-scrim-20260718 */
.hero__poster::after,.hero__slide::after{background:linear-gradient(to top,rgba(18, 18, 22, .82) 0%,rgba(18, 18, 22, .32) 34%,rgba(18, 18, 22, 0) 66%)}
.hero__poster-title{text-shadow:0 1px 5px rgba(0, 0, 0, .7)}
.hero__poster-info,.hero__poster-info *{color:rgba(255, 255, 255, .86)!important;text-shadow:0 1px 3px rgba(0, 0, 0, .78)}

/* nv-motion-20260718 */
html.nv-motion-ready .nv-reveal{opacity:0;transform:translateY(12px);transition:opacity .45s cubic-bezier(.22,1,.36,1),transform .45s cubic-bezier(.22,1,.36,1)}
html.nv-motion-ready .nv-reveal.nv-in{opacity:1;transform:none}
html.nv-motion-ready .nv-reveal.nv-instant{transition:none;opacity:1;transform:none}
@media (hover:hover){.hero__poster,.main-news .news-item{transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s cubic-bezier(.22,1,.36,1)}.hero__poster:hover,.main-news .news-item:hover{transform:translateY(-2px)}.main-news .news-item:hover{box-shadow:0 6px 20px -6px rgba(0,0,0,.45)}.hero__poster img,.main-news .news-item img{transition-duration:.28s!important}}
html.nv-motion-ready img.nv-img{opacity:0;transition:opacity .3s ease-out}
html.nv-motion-ready img.nv-img.nv-img-in{opacity:1}
@media (prefers-reduced-motion:reduce){html.nv-motion-ready .nv-reveal,html.nv-motion-ready img.nv-img{opacity:1!important;transform:none!important;transition:none!important}.hero__poster:hover,.main-news .news-item:hover{transform:none!important}}

/* nv-videomodal-20260718 */
.video-popup{background:rgba(10,10,12,.82)!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:nvBackdropIn .28s ease-out}
.video-popup__player{border-radius:18px;box-shadow:0 30px 80px -20px rgba(0,0,0,.78),0 0 0 1px rgba(255,255,255,.07);animation:nvModalIn .42s cubic-bezier(.22,1,.36,1)}
.video-popup__video{border-radius:18px 18px 0 0;overflow:hidden}
.video-popup__info{border-radius:0 0 18px 18px;padding:18px 24px}
.video-popup__player-close{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;transition:background .2s ease,transform .2s ease;cursor:pointer}
.video-popup__player-close:hover{background:rgba(255,255,255,.24);transform:rotate(90deg)}
@keyframes nvBackdropIn{from{opacity:0}to{opacity:1}}
@keyframes nvModalIn{from{opacity:0;transform:scale(.95) translateY(8px);filter:blur(4px)}to{opacity:1;transform:none;filter:blur(0)}}
@media (prefers-reduced-motion:reduce){.video-popup,.video-popup__player{animation:none!important}.video-popup__player-close{transition:none!important}.video-popup__player-close:hover{transform:none!important}}

/* nv-tcardmobile-20260718: mobile publications tournament card — batch1 pinned
   the image to 130px for a compact row, but the base <=767px card is a column
   (tiny image top-left, icon over the date). Restore the stock stacked layout:
   full-width image, centred icon, content clears the hanging icon. */
@media (max-width: 767px) {
  [data-page="publications"] .tournament-card__img {
    min-width: 100%;
    max-width: 100%;
    min-height: 120px;
  }
  [data-page="publications"] .tournament-card__content {
    padding: 40px 18px 20px;
  }
}


/* --- [mobile matches] tournament visibility fix (2026-07-19) ---
   #1 live match: reveal tournament name (was in the hidden right league block);
   #2 upcoming/history: tournament right after the date, full text, "/" separator (was nowrap-truncated). */
@media (max-width: 767px) {
  .match-item__date { flex-wrap: wrap; align-items: baseline; column-gap: 5px; }
  .match-item__date .match-item__league-name { margin-left: 0 !important; white-space: normal !important; overflow: visible !important; max-width: none !important; }
  .match-item__date .match-item__league-name::before { content: "/ "; opacity: .55; font-weight: 400; }
  .match-item__date .match-item__league-name::after { content: "" !important; }
  .match-item_live .match-item__league { display: flex !important; align-items: center; gap: 6px; margin-top: 2px; }
  .match-item_live .match-item__league-img { width: 16px; height: 16px; flex: 0 0 16px; }
  .match-item_live .match-item__league-name { width: auto !important; font-size: 12px; opacity: .85; }
}


/* --- [mobile matches v2] /matches -> homepage sidebar widget parity (2026-07-19) --- */
@media (max-width: 767px) {
  .match-item__date { display: flex !important; flex-wrap: wrap !important; align-items: baseline; column-gap: 5px; font-size: 12px; }
  .match-item__date .match-item__league-name { margin-left: 0 !important; white-space: normal !important; overflow: visible !important; max-width: none !important; font-size: 12px; }
  .match-item__date .match-item__league-name::before { content: "/ "; opacity: .55; }
  .match-item__date .match-item__league-name::after { content: "" !important; }
  .match-item_live .match-item__league { display: none !important; }
}
/* --- [match list mobile] separator placement + opponent spacing (2026-07-20) ---
   Owner-reported after the 2026-07-19 mobile parity pass.

   #1 The "/" separator sat on .match-item__league-name::before, i.e. between the
   date and the tournament. On <=767px .match-item__date wraps, so the date takes
   line 1 and line 2 opened with a dangling "/". Move the separator to the stage
   element: line 2 now reads "Tournament / Stage", which is what the base theme
   did originally (.match-item__league-name:after, killed by the 07-19 layer).

   The separator hangs off .nv-stage-filled, set by navi-enhance nvMatchDates(),
   NOT off :empty — :empty is unreliable here: the Vue list renders an empty text
   node (matches :empty) while Blade renders whitespace (does NOT match), so a
   stage-less match would keep a trailing "/" in the sidebar. Verified 2026-07-20.

   #2 .match-item__opponents defaults to `1fr fit-content(10px) 1fr`, so on the
   narrow /matches + team-page layout the left column padded a short "NAVI" out
   to half the row and pushed "VS" away from it. The sidebar already solved this
   ([B3c]) with content-sized columns; apply the same logic here. Middle column
   stays `auto` on purpose — the same markup carries "vs" in upcoming matches and
   a score in history. Side effect (wanted): the opponent column gains ~65px, so
   long names stop being clipped ("Galaxy Pho…" -> "Galaxy Phoenix"). */

@media (max-width: 767px) {
  .match-item__date .match-item__league-name::before {
    content: none;
  }
  .match-item__date .match-item__league-stage.nv-stage-filled::before {
    content: "/ ";
    opacity: .55;
    font-weight: 400;
  }
  .match-list-vue-block .match-item__opponents {
    grid-template-columns: auto auto 1fr;
  }
}


/* --- [match list r2] live meta line + desktop date column (2026-07-20) ---
   Source of truth: resources/css/match-list.css (this is the incremental delta
   appended on top of the r1 block already baked into the bundle). */
@media (max-width: 767px) {
  .tournament-matches .match-item_live .live {
    display: inline-flex !important;
    align-self: flex-start;
    margin-bottom: 2px;
  }
  .match-item_live .nv-live-meta {
    margin-bottom: 4px;
    color: #707070;
    font-size: 12px;
    line-height: 1.25;
  }
}
@media (min-width: 768px) {
  .tournament-matches .match-item .match-item__date,
  .match-list-vue-block .match-item .match-item__date {
    min-width: 158px;
  }
  .match-item_live .nv-live-meta {
    display: none;
  }
}


/* --- [standings skin r2] header follows its column (2026-07-20) ---
   Source of truth: resources/css/navi-overrides.css section 10. Appended here
   as the incremental delta on top of the r1 skin already baked in the bundle. */
table.nv-standings thead td.nv-al-left,
table.nv-standings tr.nv-headrow td.nv-al-left {
  text-align: left !important;
}
table.nv-standings thead td.nv-al-center,
table.nv-standings tr.nv-headrow td.nv-al-center {
  text-align: center !important;
}
table.nv-standings thead td.nv-al-right,
table.nv-standings tr.nv-headrow td.nv-al-right {
  text-align: right !important;
}


/* --- [ticker r2] constant-speed sponsor bar (2026-07-20) ---
   Source of truth: resources/css/navi-overrides.css §9a. Incremental delta. */
.header__top .swiper-wrapper {
  transition-timing-function: linear !important;
}


/* --- [ticker r3] reveal only once paced (2026-07-20) ---
   Source of truth: resources/css/navi-overrides.css §9a. Incremental delta. */
.header__top:not(.nv-ticker-ready) {
  opacity: 0;
}
.header__top {
  animation: nvTickerFailsafe .01s linear 3s forwards;
}
@keyframes nvTickerFailsafe {
  to { opacity: 1; }
}


/* --- [ticker r4] no animation before release (2026-07-20) ---
   Source of truth: resources/css/navi-overrides.css §9a. Incremental delta. */
.header__top:not(.nv-ticker-live) .swiper-wrapper {
  transition-duration: 0s !important;
}

/* ---- [hero scrim] owner 2026-07-22 -----------------------------------------
   Drop the base theme's flat rgba(28,27,31,.5) veil over the whole hero card and let a
   taller, denser bottom gradient carry the readability instead. Measured on prod with the
   text hidden: removing the veil alone put white titles at 1.9:1 on three of five desktop
   cards and on the bright MWI card on mobile; with this gradient the worst case is 3.5:1
   (large bold text needs >= 3:1). Artwork changes weekly, hence the margin. */
.hero__poster::before,
.hero__slide::before { content: none !important; }
.hero__poster::after,
.hero__slide::after {
  background: linear-gradient(to top,
    rgba(18, 18, 22, .90) 0%, rgba(18, 18, 22, .74) 22%, rgba(18, 18, 22, .42) 44%,
    rgba(18, 18, 22, .14) 66%, rgba(18, 18, 22, 0) 84%) !important;
}

/* ---- [hero scrim] owner 2026-07-22, round 2 ---------------------------------
   The .90/.74 gradient read as a black curtain over the bottom third ("снизу почти
   нечитаемо всё"). Protection moves onto the glyphs: a dense multi-ring halo darkens only
   the pixels touching each letter, which lets the band drop to a hint and vanish entirely
   on phones. Verified by eye on the worst cover (MWI, white "MATCH" under the title),
   desktop + 390px. ACCEPTED trade-off: formal contrast on bright covers is 1.2:1 vs the
   3:1 floor — WCAG gives no credit for a halo. See AUDIT_DECISIONS.md. */
.hero__poster::after,
.hero__slide::after {
  background: linear-gradient(to top,
    rgba(18, 18, 22, .52) 0%, rgba(18, 18, 22, .26) 18%,
    rgba(18, 18, 22, .08) 36%, rgba(18, 18, 22, 0) 54%) !important;
}
@media (max-width: 767px) {
  .hero__poster::after,
  .hero__slide::after { background: none !important; }
}
.hero__poster-title {
  text-shadow: 0 0 2px rgba(0, 0, 0, 1), 0 0 5px rgba(0, 0, 0, .95),
               0 1px 3px rgba(0, 0, 0, 1), 0 2px 12px rgba(0, 0, 0, .7) !important;
}
.hero__poster-info,
.hero__poster-info * {
  text-shadow: 0 0 2px rgba(0, 0, 0, 1), 0 0 5px rgba(0, 0, 0, .9),
               0 1px 3px rgba(0, 0, 0, .95) !important;
}

/* ---- [hero scrim] owner 2026-07-22, round 3 — desktop only -------------------
   "слишком резко светлый шрифт… прям сильный контраст" on desktop; mobile was approved
   as-is. The near-opaque halo rings read as a hard stencil at desktop type sizes, so the
   two layers are re-balanced: background takes part of the job back (.70 vs .52, still far
   from the rejected .90 curtain) and the halo becomes a soft lift with no visible edge.
   Phones keep the strong halo — they have no band at all to fall back on.
   Measured worst case 1.5:1 (was 1.2:1). Accepted trade-off, see AUDIT_DECISIONS.md. */
@media (min-width: 768px) {
  .hero__poster::after,
  .hero__slide::after {
    background: linear-gradient(to top,
      rgba(18, 18, 22, .70) 0%, rgba(18, 18, 22, .44) 18%,
      rgba(18, 18, 22, .18) 38%, rgba(18, 18, 22, 0) 60%) !important;
  }
  .hero__poster-title {
    text-shadow: 0 1px 3px rgba(0, 0, 0, .62), 0 2px 10px rgba(0, 0, 0, .45) !important;
  }
  .hero__poster-info,
  .hero__poster-info * { text-shadow: 0 1px 3px rgba(0, 0, 0, .7) !important; }
}

/* ---- [hero] owner 2026-07-22, round 4: the scrim was painting OVER the text --------
   `.hero__poster-content` and `.hero__poster::after` both sit at z-index 1, and a pseudo
   element is the LAST child of its originating element — so on that tie the scrim wins and
   covers the copy. z-index on the title itself could never help: the title lives inside the
   content's own stacking context and can only climb within it.
   Measured on prod, glyph cores before -> after: big title 150 -> 255, the four small ones
   218-220 -> 255; pure-white pixels 0% -> 10-19% on every card. This is also why the big
   title looked darker than the small ones: it sits at the very bottom of a tall card, under
   the densest part of the gradient, while the small titles sit higher where it has faded. */
.hero__poster-content { position: relative; z-index: 2 !important; }
/* tournament-card-redesign.css — redesign skin for the tournament cards.
 *
 * WHAT / WHY
 *   Owner-approved redesign of the tournament card. This file skins the VERTICAL
 *   card (.card-item) used on: the tournaments list page, the homepage tournaments
 *   block and the team page. Desktop grid AND mobile carousel share this one card.
 *   The horizontal card (.tournament-card, match pages) is skinned separately.
 *
 * DELIVERY (append layer — same mechanism as editor-batch*.css / seo-bugfix.css)
 *   Appended to the compiled public/css/app.min.css at deploy time (cat >>), which
 *   is why it lands AFTER app.min.css and wins the cascade. The deploy MUST then
 *   recompute the md5 in public/mix-manifest.json (app.min.css?id=<hash>) or
 *   Cloudflare keeps serving the old stylesheet. See the overlay Dockerfile.
 *   Kept out of the @import chain on purpose: no laravel-mix rebuild needed.
 *
 * SAFETY
 *   Pure CSS — the frozen Brights Vue bundle is untouched, no navi-enhance.js
 *   dependency. `.card-item` is tournament-only in this codebase (verified: used
 *   only in the tournaments list, homepage tournaments block and team page), so
 *   the global selectors below cannot leak onto news/media/video cards.
 *   The status marker (Live/Upcoming/Finished) from the mock needs a per-card
 *   status hook the Vue DOM doesn't expose; it is intentionally deferred to a
 *   follow-up JS pass rather than shipped fragile.
 */

/* ---- card shell: white rounded card with a hairline border --------------- */
.card-item {
  background-color: #fff;
  border: 1px solid #E5E5E8;
  border-radius: 12px;
  overflow: hidden;
}
.has-hover .card-item:hover {
  transform: translateY(-3px);
  border-color: #D2D2D6;
  box-shadow: 0 16px 30px rgba(20, 20, 20, .10);
}

/* ---- game badge: raw logo pinned to the banner top-right corner ----------
 * Was a white 52px circle straddling the banner/content seam (centered).      */
.card-item__svg {
  top: 14px;
  right: 14px;
  left: auto;
  bottom: auto;
  transform: none;
  width: 44px;
  height: 44px;
  background: transparent;
  border: none;
  border-radius: 0;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, .45));
}
.card-item__svg img {
  width: 100%;
}

/* ---- content ------------------------------------------------------------- */
.card-item__content {
  flex: 1 1 auto;
  height: auto;
  gap: 9px;
  padding: 15px 16px;
}

.card-item__title {
  margin: 0 0 2px;
  color: #1A191D;
  font-weight: 800;
  font-size: 18px;
  line-height: 1.14;
  letter-spacing: 0;
  text-transform: uppercase;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.card-item__date {
  margin: 0;
  color: #55555C;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.3;
  white-space: normal; /* let the date range wrap instead of truncating */
}

/* ---- prize row: pinned to the bottom, label + value + type chip ---------- */
.card-item__info {
  align-items: flex-end;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid #EFEFED;
}
.card-item__info::before {
  display: none; /* remove the legacy decorative dark dot */
}
.card-item__info-price {
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  overflow: visible;
}
.card-item__info-price svg.icon-goblet {
  display: none; /* redesign shows the number under a label, not the goblet */
}
.card-item__info-price::before {
  content: "Prize pool";
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #A8A8AB;
}
.card-item__info-price-text {
  margin-left: 0;
  color: #1A191D;
  font-weight: 800;
  font-size: 17px;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.card-item__info-type {
  padding: 4px 9px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  line-height: 1;
  text-transform: uppercase;
  background: #1A191D;
  color: #fff;
}

/* localized "Prize pool" label — layout sets <html lang> to en / ru / uk / id */
html[lang="ru"] .card-item__info-price::before { content: "Призовой фонд"; }
html[lang="uk"] .card-item__info-price::before { content: "Призовий фонд"; }
html[lang="id"] .card-item__info-price::before { content: "Total hadiah"; }
/* tournament-card-redesign — deploy 2 delta (status badge + country + horizontal card). Appended after deploy-1 vertical skin. */

/* =========================================================================
 * SHARED: status badge + country line  (used by both card variants).
 * Labels are localized via html[lang] ::after so no new translation keys are
 * needed. Status class = raw tournament status (ongoing|upcoming|past).
 * ========================================================================= */
@keyframes nvPulse { 0%, 100% { opacity: 1; } 50% { opacity: .4; } }

.nv-tstatus { display: inline-flex; align-items: center; gap: 7px; line-height: 1; }
.nv-tstatus__dot { width: 8px; height: 8px; border-radius: 2px; flex: 0 0 auto; }
.nv-tstatus__label { font-size: 11.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.nv-tstatus--ongoing  .nv-tstatus__dot { width: 7px; height: 7px; border-radius: 50%; background: #F6341E; animation: nvPulse 2s ease-in-out infinite; }
.nv-tstatus--ongoing  .nv-tstatus__label { color: #F6341E; }
.nv-tstatus--ongoing  .nv-tstatus__label::after { content: "Live"; }
.nv-tstatus--upcoming .nv-tstatus__dot { background: #FFEE00; }
.nv-tstatus--upcoming .nv-tstatus__label { color: #1A191D; }
.nv-tstatus--upcoming .nv-tstatus__label::after { content: "Soon"; }
.nv-tstatus--past     .nv-tstatus__dot { background: #D9D9D4; }
.nv-tstatus--past     .nv-tstatus__label { color: #86868E; }
.nv-tstatus--past     .nv-tstatus__label::after { content: "Finished"; }
html[lang="ru"] .nv-tstatus--upcoming .nv-tstatus__label::after { content: "Скоро"; }
html[lang="ru"] .nv-tstatus--past     .nv-tstatus__label::after { content: "Завершён"; }
html[lang="uk"] .nv-tstatus--upcoming .nv-tstatus__label::after { content: "Скоро"; }
html[lang="uk"] .nv-tstatus--past     .nv-tstatus__label::after { content: "Завершено"; }
html[lang="id"] .nv-tstatus--upcoming .nv-tstatus__label::after { content: "Segera"; }
html[lang="id"] .nv-tstatus--past     .nv-tstatus__label::after { content: "Selesai"; }

/* =========================================================================
 * VERTICAL card additions: status on top, date+country meta line.
 * Order forces status -> title -> date -> prize (mock order) regardless of
 * the source DOM order (Vue renders date before title).
 * ========================================================================= */
.card-item .nv-tstatus { order: 1; margin-bottom: 1px; }
.card-item__title { order: 2; }
.card-item__date  { order: 3; }
.card-item__info  { order: 4; }

/* date line carries the country next to the date */
.card-item__date { display: flex; align-items: center; flex-wrap: wrap; gap: 3px 8px; }
.card-item__country { display: inline-flex; align-items: center; gap: 6px; color: #55555C; }
.card-item__country-flag {
  width: 17px; height: 12px; border-radius: 2px; flex: 0 0 auto;
  box-shadow: inset 0 0 0 1px rgba(20, 20, 20, .08);
}

/* =========================================================================
 * HORIZONTAL card `.tournament-card` (match / series / match-publication
 * pages). Same visual language as the vertical card: white rounded card,
 * banner left, status + title + date/country, prize column on the right.
 * ========================================================================= */
.tournament-card {
  position: relative;
  align-items: stretch;
  background: #fff;
  border: 1px solid #E5E5E8;
  border-radius: 12px;
  overflow: hidden;
}
.has-hover .tournament-card:hover { border-color: #D2D2D6; box-shadow: 0 16px 30px rgba(20, 20, 20, .10); }

/* banner left */
.tournament-card__img { min-width: 236px; max-width: 236px; min-height: 158px; }
.tournament-card__img img { height: 100%; }

/* game badge: raw logo overhanging the banner seam (was a bordered circle) */
.tournament-card__icon {
  right: -20px; width: 46px; height: 46px;
  background: transparent; border: none; border-radius: 0;
  filter: drop-shadow(0 1px 5px rgba(20, 20, 20, .18));
}
.tournament-card__icon img { width: 100%; height: 100%; }

/* content: status -> title -> date/country */
.tournament-card__content {
  flex: 1 1 auto; flex-direction: column; align-items: flex-start;
  justify-content: center; gap: 9px;
  padding: 18px 26px 18px 42px;
}
.tournament-card__title {
  margin: 0; color: #1A191D; font-weight: 800; font-size: 25px; line-height: 1.1;
  letter-spacing: 0; text-transform: uppercase;
}
.tournament-card__info { width: auto; margin-bottom: 0; flex-wrap: wrap; gap: 3px 10px; }
.tournament-card__info-date { margin-right: 0; color: #55555C; font-size: 14px; font-weight: 500; }
.tournament-card__info-country { color: #55555C; font-size: 14px; font-weight: 500; gap: 8px; }
.tournament-card__info-country img { width: 18px !important; height: 12px !important; margin-right: 0 !important; border-radius: 2px; box-shadow: inset 0 0 0 1px rgba(20, 20, 20, .08); }

/* prize column on the right */
.tournament-card__prize {
  flex-direction: column; align-items: flex-end; justify-content: center; gap: 6px;
  margin: 18px 0; padding: 0 26px 0 22px; border-left: 1px solid #EFEFED; min-width: 132px;
}
.tournament-card__prize-icon { display: none; }
.tournament-card__prize::before {
  content: "Prize pool"; order: -1;
  font-size: 9.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #A8A8AB;
}
html[lang="ru"] .tournament-card__prize::before { content: "Призовой фонд"; }
html[lang="uk"] .tournament-card__prize::before { content: "Призовий фонд"; }
html[lang="id"] .tournament-card__prize::before { content: "Total hadiah"; }
.tournament-card__wrapp { margin-left: 0; align-items: flex-end; }
.tournament-card__sum { margin-bottom: 0; color: #1A191D; font-weight: 800; font-size: 21px; line-height: 1; font-variant-numeric: tabular-nums; }
.tournament-card__type-tournament {
  padding: 4px 9px; border-radius: 4px; font-size: 10px; font-weight: 700; letter-spacing: .14em;
  line-height: 1; text-transform: uppercase; background: #1A191D; color: #fff;
}
/* tournament-card-redesign — deploy 3 delta (live progress bar). */
/* =========================================================================
 * Live progress bar on the vertical card banner. Injected by navi-enhance.js
 * on ongoing tournaments (width = elapsed share of the tournament date range).
 * ========================================================================= */
.nv-tcard-progress { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: rgba(20, 20, 20, .20); z-index: 2; }
.nv-tcard-progress span { display: block; height: 100%; background: #FFEE00; }
/* tournament-card-redesign — deploy 4 delta (horizontal card mobile stacking). */
/* =========================================================================
 * Horizontal card on mobile (<=767px): the desktop skin above fixes the banner
 * and prize column widths, which would overflow narrow screens. Stack it into a
 * vertical card — full-width banner, badge on the banner, prize as a bottom row.
 * ========================================================================= */
@media only screen and (max-width: 767px) {
  .tournament-card { flex-direction: column; align-items: stretch; }
  .tournament-card__img { min-width: 0; max-width: 100%; width: 100%; min-height: 0; height: 190px; }
  .tournament-card__icon { top: 14px; right: 14px; left: auto; bottom: auto; transform: none; width: 44px; height: 44px; }
  .tournament-card__content { padding: 14px 16px; }
  .tournament-card__title { font-size: 19px; }
  .tournament-card__prize {
    flex-direction: row; align-items: center; justify-content: space-between;
    margin: 0 16px; padding: 12px 0 16px; min-width: 0;
    border-left: none; border-top: 1px solid #EFEFED;
  }
  .tournament-card__prize::before { display: none; }
  .tournament-card__wrapp { flex-direction: row; align-items: center; justify-content: space-between; width: 100%; }
}
/* tournament-card-redesign — deploy 5 delta (horizontal card polish: title/rhythm/prize). */
/* =========================================================================
 * Horizontal card polish — tighter title (no orphan wrap), even vertical
 * rhythm, and real breathing room between the prize sum and the type chip.
 * The publications block (editor-batch1.css "A4") sizes the in-article card up
 * to a 30px title in a ~400px content column, which orphaned a lone word onto
 * line 2; these rules append AFTER it and win at equal specificity.
 * ========================================================================= */
.tournament-card__content { min-width: 0; }               /* never let content overflow the prize column */
.tournament-card__title { font-size: 22px; line-height: 1.2; text-wrap: balance; }
.tournament-card__info { gap: 4px 10px; }
.tournament-card__prize { flex: 0 0 auto; gap: 7px; }
.tournament-card__wrapp { gap: 8px; }                     /* sum <-> type chip spacing */
.tournament-card__sum { margin-bottom: 0; }

[data-page="publications"] .tournament-card__title { font-size: 22px; line-height: 1.2; }
[data-page="publications"] .tournament-card__content { padding: 22px 30px 22px 48px; }
[data-page="publications"] .tournament-card__info-date { font-size: 14px; }

/* ===== navi-ds.css ===== */
/* =========================================================================
 * navi-ds.css — the single token vocabulary for navi.gg.
 *
 * Appended to the compiled public/css/app.min.css BEFORE the approved redesign
 * layers, so those layers can consume these tokens while still winning the
 * cascade by source order.
 *
 * WHY THIS FILE EXISTS
 *   Two layers had grown their own vocabularies for the same things — `--nv-*`
 *   (premium polish, 2026-07-02) and `--m-*` (match redesign, 2026-07-24) —
 *   plus 30 hardcoded `#FFEE00` alongside an existing `--navi-yellow`. Four
 *   near-identical greys existed because each layer re-picked "the right grey"
 *   by eye. Nine more page groups on that basis would produce ten dialects of
 *   one style rather than one design.
 *
 * MERGE POLICY — measured, not judged
 *   Two values collapse into one token only when CIE76 dE < 1.0, the threshold
 *   below which the human eye cannot separate them. Measured 2026-07-26:
 *
 *     #F0F0ED / #F0F0EC / #EFEFEC / #EFEFED   dE 0.35-0.61   MERGED
 *     #EEEDEF vs that cluster                 dE 2.15-3.21   separate grey
 *     #55555A vs #55555C                      dE 1.24        NOT merged
 *     #E6E6E2 vs #E2E2DE                      dE 1.41        different roles
 *     #E5E5E8 vs #E6E6E2                      dE 3.63        NOT merged
 *     #86868E vs #8F8F92                      dE 4.40        NOT merged
 *     #1A191D vs #141414                      dE 4.06        different roles
 *     #F6341E vs #E03E36                      dE 18.36       unrelated colours
 *
 *   So the four-way grey merge is real and the rest of the "obvious duplicates"
 *   were not duplicates at all. The value of this file is therefore less about
 *   deleting values and more about giving each one ONE name and ONE home, so a
 *   later layer stops inventing a neighbour by eye.
 *
 * CANON, AND WHAT STAYS LITERAL
 *   Each role below declares the most recently approved value. Where an older
 *   layer holds a value that is perceptibly different, it is deliberately NOT
 *   re-pointed at the token — that would move approved pixels. Those literals
 *   are listed at the bottom of this file as alignment debt, to be decided
 *   deliberately rather than absorbed silently.
 *
 * PROOF
 *   Adding this file must change nothing on screen. Verified by capturing the
 *   computed styles of every tracked selector across 30 page types before and
 *   after, and diffing them with a dE-aware comparator:
 *   docs/redesign/2026-07-25_full-site/tools/{styles,style_diff}.py
 * ========================================================================= */

:root {
  /* --- brand ------------------------------------------------------------ */
  --ds-yellow:          #FFEE00;   /* Pantone Yellow C; the mockups' #FFE500 is not used */
  --ds-yellow-hover:    #E6D600;
  --ds-yellow-ink:      #1A191D;   /* text on yellow */

  /* --- dark chrome: header, footer, dark blocks -------------------------- */
  --ds-bg-dark:         #1A191D;
  --ds-surface-dark-1:  #1F2021;
  --ds-surface-dark-2:  #27262B;
  --ds-line-dark:       rgba(255, 255, 255, .08);

  /* --- light body -------------------------------------------------------- */
  --ds-zone:            #EFEFEF;   /* page background behind cards */
  --ds-card:            #FFFFFF;
  --ds-cell:            #F0F0ED;   /* game cell, thumb backing, tab track */
  --ds-cell-cool:       #EEEDEF;   /* a genuinely different grey, dE 2.7 from --ds-cell */

  /* --- lines -------------------------------------------------------------- */
  --ds-line:            #E6E6E2;   /* card and row border */
  --ds-line-strong:     #E2E2DE;   /* control border, inactive pagination */

  /* --- ink ---------------------------------------------------------------- */
  --ds-ink:             #141414;   /* body text on light */
  --ds-ink-brand:       #1A191D;   /* brand near-black: dark surfaces, text on yellow */
  --ds-ink-2:           #55555A;   /* secondary on light, AA at 14px */
  --ds-ink-3:           #8F8F92;   /* muted: VS, stage, inactive tab */
  --ds-ink-on-dark:     #A7A7B2;   /* secondary on dark, AA */

  /* --- status ------------------------------------------------------------- */
  --ds-live:            #E03E36;   /* the LIVE chip */
  --ds-alert:           #F6341E;   /* brand red; a different colour, not a shade of live */
  --ds-win:             #1F8A4C;   /* finished score, AA on white */
  --ds-loss:            #C0392B;

  /* --- radius: both steps survive, they are different roles ---------------- */
  --ds-r-xs:            4px;       /* chips, pills, small controls */
  --ds-r-sm:            6px;       /* team logos, tabs */
  --ds-r-md:            10px;      /* cards and list rows */
  --ds-r-pill:          999px;

  /* --- elevation ----------------------------------------------------------- */
  --ds-sh-1:            0 1px 2px rgba(20, 20, 24, .08);
  --ds-sh-2:            0 4px 14px rgba(20, 20, 24, .10);
  --ds-sh-3:            0 10px 28px rgba(20, 20, 24, .14);

  /* --- spacing: the audit found section gaps set per block rather than from
         a scale; these are the steps already in use, named ------------------- */
  --ds-s-1:             4px;
  --ds-s-2:             8px;
  --ds-s-3:             10px;
  --ds-s-4:             12px;
  --ds-s-5:             16px;
  --ds-s-6:             20px;
  --ds-s-7:             28px;
  --ds-s-8:             40px;
  --ds-s-9:             60px;

  /* --- type: the sizes the approved layers actually use --------------------- */
  --ds-t-micro:         11.5px;    /* chips, tabs, LIVE */
  --ds-t-small:         12.5px;
  --ds-t-body:          14px;
  --ds-t-strong:        15px;      /* team names */
  --ds-t-h3:            18px;      /* section headings */
  --ds-t-h2:            22px;

  /* --- the section heading, stated once ------------------------------------
     Every "yellow bar + word" heading on the site is one component, and it kept
     drifting because its three parts were declared in three different files: the
     size here, the bar in chrome.css, and a second size for the sidebar in
     match-redesign.css. Measured 2026-07-27: one column ran 21px and the column
     beside it 18px, and the bar — a fixed 22px centred on the flex LINE — sat at a
     different height above the type in every section, because that line is 27px
     without a link beside the heading and 39px with one.

     So the metrics live here and nowhere else:
       size   one step for every section heading, both columns
       bar    5px wide, exactly as tall as the capitals (cap height measured on
              Navi Bold = .715em), and its bottom sits ON the text baseline. In em,
              so it stays true at any heading size — that is what stops it drifting.
       gap    bar to word
       below  heading to the block under it
     ------------------------------------------------------------------------- */
  --ds-sec-size:        21px;
  --ds-sec-lh:          1.3;
  /* Mobile step. Two files already dropped their own headings to 16px below 768px
     while the home page's stayed at 21 — which is how the same component ended up at
     two sizes on one site (found by `align.py --heads` on 2026-07-27). 16 is not a new
     number, it is the one those files had already chosen; stating it here makes every
     section heading follow it, and at 390px it also stops "АКТИВНЫЕ ТУРНИРЫ" wrapping. */
  --ds-sec-size-sm:     16px;
  /* RETIRED 2026-07-27 — the owner asked for the yellow bar to go, site-wide: "она мне не
     нравится". The kill rule is in chrome.css, which is the last layer and therefore the
     only place that can out-specify all five rules that generated it. These two names stay
     declared because the inert width/height rules still reference them, and because a
     dangling var() is worse than a documented retirement. Do not reintroduce the bar by
     restoring these — `align.py --heads` fails on any heading that paints one. */
  --ds-sec-bar-w:       5px;
  --ds-sec-bar-h:       .715em;
  --ds-sec-gap:         var(--ds-s-4);
  --ds-sec-below:       var(--ds-s-6);
  /* above  the space between one section and the next one's heading. Nothing declared
     this, so every section block carried its own margin-bottom and the next section
     inherited whatever that happened to be. Measured across all 30 page types on
     2026-07-27: 60px on fifteen of the site's nineteen gaps, and four exceptions — 0 and
     60 on one page, 48 and 120 on another, 40 on an article. 60 is not a new number, it
     is the one the site already uses; stating it here is what brings the four in line.
     Enforced by `align.py --heads`, which now fails when a page carries more than one. */
  --ds-sec-above:       60px;

  /* --- optical centring of an icon beside text -----------------------------
     A line box reserves room under the baseline for descenders, so its middle sits
     ABOVE the middle of the ink. Centre an icon in the line box — which is what
     `align-items: center` does — and it lands high; the arrow on "Все новости" was
     2.2px above the word's optical centre and read as not centred (owner, 2026-07-27).

     The correction is a property of the typeface, not of any one control. Centring
     on the CAP BAND (cap top to baseline) rather than on whatever ink the particular
     word happens to have — otherwise a label with a descender in it would want a
     different offset from one without, which is not how the eye reads a line:
         (fontAscent − fontDescent − capHeight) / 2
     For Navi Bold that is (13 − 2 − 8.75)/2 = 1.125px at 12.5px ≈ .09em, rounded to
     .1em. Usefully, it does not depend on the line-height. Nudge a centred icon DOWN
     by this and it sits on the word's optical centre at any size.
     ------------------------------------------------------------------------- */
  --ds-optical:         .1em;

  /* --- motion: SPEC.md section 7 -------------------------------------------- */
  --ds-d-micro:         130ms;     /* hover, press */
  --ds-d-state:         200ms;     /* tab, chip, filter */
  --ds-d-enter:         280ms;     /* panel, block reveal */
  --ds-e-enter:         cubic-bezier(.2, .8, .2, 1);
  --ds-e-exit:          cubic-bezier(.4, 0, 1, 1);
  --ds-stagger:         35ms;      /* between neighbours, capped at six items */
}

/* =========================================================================
 * ALIGNMENT DEBT — literals that are perceptibly different from the canon
 * above and are therefore left alone rather than re-pointed. Each is a
 * deliberate decision for a later wave, not an oversight:
 *
 *   navi-overrides.css  --nv-text-2-on-light  #55555C  vs --ds-ink-2  (dE 1.24)
 *   navi-overrides.css  --nv-text-3           #86868E  vs --ds-ink-3  (dE 4.40)
 *   navi-overrides.css  --nv-card-line        #E5E5E8  vs --ds-line   (dE 3.63)
 *
 * Aligning any of these changes approved pixels and needs the owner's word.
 * ========================================================================= */

/* =========================================================================
 * PRIMITIVES
 *
 * Opt-in classes for new markup. Existing approved layers are deliberately NOT
 * rewritten to consume them: re-pointing tokens is provably safe and was
 * measured, re-pointing whole rule bodies is not, and the payoff would only
 * arrive in wave 1. Approved pixels stay untouched; later waves can adopt a
 * primitive one block at a time when there is a reason to.
 *
 * Every rule is wrapped in  so it carries ZERO specificity. A page
 * layer overrides any of it with one plain class and no !important — which is
 * the habit this file exists to break (navi-overrides.css needed 105 of them).
 *
 * Each primitive was confirmed by at least two consuming surfaces in AUDIT.md
 * before being written here. `nv-empty` is the one exception: nothing
 * implements an empty state today — lists simply render nothing — and every
 * wave needs one.
 *
 * Names verified free 2026-07-26: zero hits across the live stylesheet, 418
 * Blade templates and navi-enhance.js.
 * ========================================================================= */

.nv-card,
.nv-row {
  background: var(--ds-card);
  border: 1px solid var(--ds-line);
  border-radius: var(--ds-r-md);
  overflow: hidden;
}
.nv-row {
  display: flex;
  align-items: stretch;
}

/* Section heading with the brand bar. The audit found two heading styles
 * coexisting — this one (sidebar, tournaments, match page) is the canon. */
.nv-shead {
  display: flex;
  align-items: center;
  gap: var(--ds-s-4);
  font-size: var(--ds-t-h3);
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ds-ink);
}
.nv-shead::before {
  content: "";
  flex: 0 0 auto;
  width: 5px;
  height: 22px;
  background: var(--ds-yellow);
}

/* @keyframes nvLivePulse is defined in match-redesign.css, which is appended
 * after this file in the same stylesheet — keyframes resolve by name across the
 * whole document, so it is referenced rather than redeclared. */
.nv-pill-live {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: var(--ds-r-xs);
  background: var(--ds-live);
  color: #fff;
  font-size: var(--ds-t-micro);
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.nv-pill-live::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: var(--ds-r-pill);
  background: currentColor;
  animation: nvLivePulse 1.6s ease-in-out infinite;
}

.nv-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 9px;
  border-radius: var(--ds-r-xs);
  background: var(--ds-cell);
  color: var(--ds-ink-2);
  font-size: var(--ds-t-micro);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.nv-tabs {
  display: flex;
  gap: 2px;
  padding: 3px;
  border-radius: 8px;
  background: var(--ds-cell);
}
.nv-tabs__tab {
  flex: 1;
  padding: var(--ds-s-2) 6px;
  border: 1px solid transparent;
  border-radius: var(--ds-r-sm);
  background: transparent;
  color: var(--ds-ink-3);
  font-size: var(--ds-t-micro);
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-align: center;
  cursor: pointer;
  transition: background var(--ds-d-state) var(--ds-e-enter),
              color var(--ds-d-state) var(--ds-e-enter);
}
.nv-tabs__tab[aria-selected="true"] {
  background: var(--ds-card);
  border-color: var(--ds-line-strong);
  box-shadow: var(--ds-sh-1);
  color: var(--ds-ink);
}

.nv-page {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  border: 1px solid var(--ds-line-strong);
  border-radius: 7px;
  background: var(--ds-card);
  color: var(--ds-ink-2);
  font-size: 14.5px;
  font-weight: 700;
  letter-spacing: .04em;
  text-decoration: none;
}
.nv-page[aria-current="page"] {
  background: var(--ds-yellow);
  border-color: var(--ds-yellow);
  color: var(--ds-ink-brand);
}

.nv-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ds-s-2);
  min-height: 44px;               /* touch target */
  padding: 0 var(--ds-s-6);
  border: 0;
  border-radius: var(--ds-r-xs);
  background: var(--ds-yellow);
  color: var(--ds-ink-brand);
  font-size: var(--ds-t-body);
  font-weight: 700;
  letter-spacing: .04em;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--ds-d-micro) var(--ds-e-exit),
              transform var(--ds-d-micro) var(--ds-e-exit);
}
.nv-btn--ghost {
  background: transparent;
  border: 1px solid var(--ds-line-strong);
  color: var(--ds-ink);
}

.nv-ulink {
  color: var(--ds-ink);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  box-shadow: inset 0 -2px 0 var(--ds-yellow);
}

.nv-empty {
  padding: var(--ds-s-7) var(--ds-s-6);
  border: 1px dashed var(--ds-line-strong);
  border-radius: var(--ds-r-md);
  color: var(--ds-ink-3);
  font-size: var(--ds-t-body);
  text-align: center;
}

/* --- interaction: transform and opacity only, per SPEC.md section 7 -------- */
.nv-card, .nv-row {
  transition: transform var(--ds-d-micro) var(--ds-e-exit),
              box-shadow var(--ds-d-micro) var(--ds-e-exit);
}
@media (hover: hover) {
  a:hover > .nv-card, a:hover > .nv-row, .nv-card:hover, .nv-row:hover {
    transform: translateY(-2px);
    box-shadow: var(--ds-sh-2);
  }
  .nv-btn:hover { background: var(--ds-yellow-hover); }
}
.nv-card:active, .nv-row:active, .nv-btn:active { transform: translateY(0); }

.nv-btn:focus-visible, .nv-page:focus-visible, .nv-tabs__tab:focus-visible,
       .nv-ulink:focus-visible, .nv-card:focus-visible, .nv-row:focus-visible {
  outline: 2px solid var(--ds-ink-brand);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .nv-card, .nv-row, .nv-tabs__tab, .nv-btn { transition: none; }
  .nv-pill-live::before { animation: none; }
}

/* =========================================================================
 * SECTION SPACING — the four blocks that were not on the canon
 *
 * The gap between sections is produced by the previous block's margin-bottom, not by
 * the heading, so it drifted wherever a block set its own. `align.py --heads` reports
 * every gap on a page and fails when it finds more than one; these four are what it
 * found across the whole page inventory on 2026-07-27.
 *
 * Stated here rather than in a wave layer because it is a site-wide canon, and stated
 * as the previous block's bottom margin because that is the mechanism already in use —
 * moving it onto the heading would mean unpicking every block's own spacing first.
 * ========================================================================= */

/* /teams/{game} — the staff block had no bottom margin at all, so «Новости» sat
   flush against it (0px against the 60 above «Штаб»). */
.command-staff {
  margin-bottom: var(--ds-sec-above);
}

/* /{game}/{player} — 48 above «РЕКОМЕНДУЕТ». The 120 above «Тиммейты» was not a spacing
   value at all: an always-empty .player-tournament block sat between them spending its own
   60px margin, and that is fixed in the Blade rather than here. */
.player-recent-matches {
  margin-bottom: var(--ds-sec-above);
}

/* article page — «Читайте также» sat at 40, produced by .publication-share's own bottom
   margin. Adjacent margins collapse to the larger, so stating 60 on the block itself wins
   without having to unpick what the share row does. */
.related-news {
  margin-top: var(--ds-sec-above);
}

/* ===== tournament-card-batch2.css ===== */
/* tournament-card-batch2.css — second pass on the tournament card system.
 *
 * WHAT / WHY (owner batch, 2026-07-24)
 *   1. The whole horizontal card is a click target, not just the title.
 *   2. The ONLINE chip is dropped; LAN stays (it is the one that carries meaning).
 *   3. The status badge (Live/Soon/Finished) is dropped from every card variant.
 *   4/7. Game logos sit on a white plate instead of floating on the banner art.
 *   5. The tournament hero's prize block moves to the card design language.
 *   8. All the yellow bars are pinned to one token, height and radius.
 *   Items 2, 3 and 5 also free up space, so the affected blocks are re-balanced here.
 *
 * DELIVERY (append layer — same mechanism as tournament-card-redesign.css)
 *   Appended to the compiled public/css/app.min.css at deploy time (cat >>), so it
 *   lands after both app.min.css and the first redesign layer and wins the cascade.
 *   The deploy MUST recompute the md5 in public/mix-manifest.json or Cloudflare
 *   keeps serving the old stylesheet for 90 days. See the overlay Dockerfile.
 *
 * SAFETY
 *   Pure CSS. The frozen Brights Vue bundle is untouched. The .nv-tstatus rules in
 *   tournament-card-redesign.css are now dead — the markup is gone from Blade and
 *   navi-enhance.js no longer injects it — but that layer is already baked into
 *   navi-corp:local, so this file neutralises the badge instead of editing history.
 *   That also covers the window where Cloudflare still serves the previous
 *   navi-enhance.js to a client that has not picked up the ?v bump yet.
 */

/* =========================================================================
 * 3. Status badge — gone from every surface.
 * ========================================================================= */
.nv-tstatus { display: none !important; }

/* 2. ONLINE chip on the Vue-rendered cards (Blade cards are gated server-side). */
.nv-type-hidden { display: none !important; }

/* =========================================================================
 * 1. The whole horizontal card is the click target.
 * A stretched-link pseudo on the existing title anchor: one link in the DOM, so
 * crawlers and the accessibility tree still see exactly one destination, and no
 * extra overlay element is needed. .tournament-card is already position:relative.
 * ========================================================================= */
.tournament-card { cursor: pointer; }
.tournament-card__title::after {
  content: "";
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  z-index: 1;
}
/* Nothing inside the card is independently interactive, so no child is lifted
   above the stretched link — the game plate would otherwise be a dead zone. */

/* Hover now belongs to the whole card, so give it the same lift as .card-item. */
.tournament-card {
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.has-hover .tournament-card:hover { transform: translateY(-3px); }
.has-hover .tournament-card:hover .tournament-card__title { color: #000; }

/* =========================================================================
 * 2/3. Re-balance both cards for the freed rows.
 * Vertical: the status row is gone, so the title is now the first line and needs
 * a little more headroom. Horizontal: the left inset still has to clear the game
 * plate, which stays centred on the banner seam.
 * ========================================================================= */
.card-item__content { padding: 17px 16px 16px; }

.tournament-card__content { padding: 20px 26px 20px 42px; gap: 10px; }
[data-page="publications"] .tournament-card__content { padding: 24px 30px 24px 48px; }

/* =========================================================================
 * 4/7. Game logo plates.
 * One shape language across the three surfaces: white rounded square, hairline
 * edge, soft drop shadow, logo contained with padding. A rounded square (not a
 * circle) because several game logos are wide wordmarks — PUBG, EWC — which a
 * circle crops or shrinks to illegibility.
 * ========================================================================= */

/* vertical card (.card-item) — smaller than before: 44 -> 38 */
.card-item__svg {
  top: 12px;
  right: 12px;
  left: auto;
  bottom: auto;
  transform: none;
  width: 38px;
  height: 38px;
  padding: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px solid rgba(20, 20, 20, .06);
  border-radius: 10px;
  box-shadow: 0 2px 8px rgba(20, 20, 20, .18);
  filter: none; /* the plate carries the shadow now — no double shadow */
}
.card-item__svg img,
.card-item__svg-icon {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* horizontal card (.tournament-card) — stays centred on the banner/content seam,
   where the design puts it; the plate is what changes, not the position. The
   negative offset is half the plate width, so it straddles the seam exactly. */
.tournament-card__icon {
  right: -23px;
  width: 46px;
  height: 46px;
  padding: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  /* half of the plate sits on white content, where a .06 hairline disappears —
     the edge is carried a little harder than on the vertical card */
  border: 1px solid rgba(20, 20, 20, .10);
  border-radius: 11px;
  box-shadow: 0 2px 10px rgba(20, 20, 20, .20);
  filter: none;
}
.tournament-card__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* =========================================================================
 * Place line: flag + city, no country (the flag already says the country).
 * Both variants sat the flag and the label on different baselines — the flag is
 * a replaced inline element, so it aligns on the text baseline rather than the
 * x-height unless the row is told to centre it.
 * ========================================================================= */
.card-item__country,
.tournament-card__info-country {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  line-height: 1.25;
}
.card-item__country-flag,
.tournament-card__info-country img {
  display: block;
  flex: 0 0 auto;
  align-self: center;
  width: 17px !important;
  height: 12px !important;
  margin: 0 !important;
  border-radius: 2px;
  object-fit: cover;
  box-shadow: inset 0 0 0 1px rgba(20, 20, 20, .08);
}
.card-item__country > span,
.tournament-card__info-country > span {
  display: block;
  line-height: 1.25;
}

/* =========================================================================
 * 5. Tournament hero — the prize block was the last piece still wearing the
 * legacy skin (goblet icon, 12px sum, grey type caption). Same treatment as the
 * card prize column: caption label, tabular sum, dark LAN chip. The label is
 * localized through html[lang] so no new translation keys are needed.
 * ========================================================================= */
.tournament-hero__prize {
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 7px;
  padding-left: 28px;
}
/* the legacy skin uses this pseudo as a 28px absolutely-positioned dark dot —
   it has to be reset to a normal flow item before it can carry the label */
.tournament-hero__prize::before {
  content: "Prize pool";
  position: static;
  width: auto;
  height: auto;
  background: none;
  border-radius: 0;
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #A8A8AB;
  line-height: 1;
}
html[lang="ru"] .tournament-hero__prize::before { content: "Призовой фонд"; }
html[lang="uk"] .tournament-hero__prize::before { content: "Призовий фонд"; }
html[lang="id"] .tournament-hero__prize::before { content: "Total hadiah"; }

.tournament-hero__prize-info {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}
.tournament-hero__sum {
  font-size: 24px; /* stays under the 28px hero title so the hierarchy holds */
  font-weight: 800;
  line-height: 1;
  color: #1A191D;
  font-variant-numeric: tabular-nums;
}
.tournament-hero__type {
  padding: 4px 9px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  line-height: 1;
  text-transform: uppercase;
  background: #1A191D;
  color: #fff;
}

/* THE STANDINGS TEAM COLUMN ON A PHONE (editor, 2026-07-29: "поправь отображение первого
   столбика, а то всё как-то сбилось, место название команды и лого").

   The cell is WYSIWYG output — `<td><img> Team Name</td>`, with the rank chip on ::before —
   so the chip, the logo and the name are three inline items sharing a 75px column, and they
   wrapped against each other: chip and logo on one line, the name under them, a two-word
   name on a third. Rows came out 85, 85, 100, 85, 85, 84px tall. That is what "сбилось"
   looks like.

   One line per row cannot fit 390px, and that is measured rather than assumed: the four stat
   columns are held at 64px each by their own HEADINGS (their data needs 44), the team cell
   needs 150 for chip + logo + "Gentle Mates", and 150 + 4x64 is 406 inside a 358px container.
   Trimming padding and tracking recovers nowhere near that 90px, and every layout that fits
   — flex cell, floated logo, ellipsis — was built and measured first: they either overflowed
   to 423-464px or made the row heights worse (spread 31 against the current 16).

   So the row goes to one line and the table scrolls sideways — which it ALREADY does here:
   `.table-block` is `overflow-x: auto` and was overflowing by 17px before this change. The
   sticky first column is what makes that acceptable rather than a loss: the team stays
   pinned while the stats slide under it, so nothing becomes unreachable, only a swipe away.
   Rows drop from 85-100px to a uniform 45.

   The editor's inline percentage widths have to be overridden, or the browser distributes
   the width proportionally and squeezes the team column no matter what else is set.

   ⚠ Two details that look optional and are not:
     - the header's sticky cell needs its OWN opaque background. `#F7F7F7` is painted on the
       `<tr>`, not on the cells, so a transparent sticky cell shows the next heading sliding
       underneath it — caught in a screenshot, not in the numbers.
     - the NAVI row restates BOTH shadows. Its yellow left bar is a `box-shadow`, and the rule
       that sets it is more specific than this block, so writing the separator shadow only on
       the generic selector left that one row without it.

   Stated here rather than in navi-overrides.css, where the rest of this table lives: that
   file is compiled into the base bundle and is not part of the preview layer chain, so an
   edit there would never have reached the page. */
@media (max-width: 767px) {
  table.nv-standings { width: 100% !important; }
  table.nv-standings td { width: auto !important; height: auto !important; }
  table.nv-standings thead td { padding: 10px 6px !important; letter-spacing: .03em; }
  table.nv-standings tbody td { padding: 12px 6px; }
  table.nv-standings tbody td:first-child::before {
    width: 20px; height: 20px; margin-right: 6px; font-size: 11px;
  }
  table.nv-standings tbody td:first-child img {
    width: 20px !important; height: 20px !important; margin-right: 6px;
  }

  table.nv-standings tbody td:first-child,
  table.nv-standings thead td:first-child,
  table.nv-standings tr.nv-headrow td:first-child {
    position: sticky;
    left: 0;
    z-index: 1;
    white-space: nowrap;
    box-shadow: 6px 0 8px -6px rgba(20, 20, 20, .18);
  }
  table.nv-standings thead td:first-child,
  table.nv-standings tr.nv-headrow td:first-child { background: #F7F7F7; }
  table.nv-standings tr.nv-standings__me td:first-child {
    box-shadow: inset 3px 0 0 var(--navi-yellow), 6px 0 8px -6px rgba(20, 20, 20, .18);
  }
}

/* The header's top inset was clearance for a plate that has left (owner, 2026-07-29:
   "у нас освободилось место под картинкой… сейчас осталось между картинкой и нашим
   заголовком").

   It was never a design decision: the plate used to hang 26px BELOW the cover, so the
   content block carried `padding-top: 40px` to clear it. With the plate now inside the
   cover, 40px is vestigial — double the block's own rhythm, which is 19-20px everywhere
   else in it.

   28 top / 20 between / 20 bottom, not a flat 20 all round. Shot both and looked: a
   full-bleed photographic edge reads heavier than the card's white foot, so numerically
   equal padding comes out looking tighter at the top — the title sat pressed against the
   image. 28px is the next step on the scale and restores the optical balance. The 19px
   between the header and the description was off-scale and joins the same rhythm. */
.tournament-hero__content {
  padding-top: 28px;
  padding-bottom: 20px;
}
.tournament-hero__content-header { margin-bottom: 20px; }

/* The "go to all matches" link had drifted away from the list it belongs to (owner,
   2026-07-29). Measured: 60px between the last row and the link — exactly the gap the
   section itself leaves before the NEXT section, which is why the link stopped reading as
   part of this block and started reading as a stray.

   The 60px is not written on anything between them: it is a bottom margin collapsing out
   through three wrappers. `.matches__body` contributes 35px and `.matches-list` 60px, and a
   collapse keeps the larger — which is why zeroing only the first changed nothing on
   /tournaments/lec-2026-summer while /tournaments/vct-2026-emea-stage-2, which has no such
   wrapper, was already fixed. Both are zeroed, and the gap is then stated once on the button.

   `:last-child` on the list, not the bare class: if a block ever stacks two lists, only the
   one that touches the button loses its margin and the separation between them survives. */
.matches.tournament-matches .matches__body { margin-bottom: 0; }
.matches.tournament-matches .matches-list:last-child { margin-bottom: 0; }
.matches.tournament-matches .matches__btn { margin-top: var(--ds-s-6); }

/* hero game logo — same plate language. Was a 52px white circle, then a 14px plate; back to
   a circle, smaller, and moved fully onto the artwork (editor, 2026-07-29: "вернул бы
   круглые логотипы всё-таки… нужно их уменьшить, слишком крупные… мб тут лого вообще выше
   поднять на картинку… чтобы у нас не было ситуаций, когда белое на белом").

   The white-on-white was structural rather than a colour choice: the plate straddled the
   cover's bottom edge — `bottom: -26px` on a 52px box, so exactly half of it hung below —
   and that half sat on the page's own white behind a 6%-opacity border. Anchoring it inside
   the cover removes the case entirely: the plate is now always on artwork, which is what a
   white plate is for.

   Corner and position settled on the second pass (owner, 2026-07-29: "всё-таки давай
   логотип делать с острыми углами и ставить в левый верхний угол"). So the plate stays
   square — it takes the sharp trial's own rule rather than an exception to it — and sits at
   the cover's top-left. Nothing is layered there: the play triangle and the line visible in
   that corner on this tournament are painted into the artwork, not DOM.

   `bottom: auto` is load-bearing, not tidiness: the base sets `bottom: -26px`, and an
   absolutely positioned box given top, bottom AND height is over-constrained — one of them
   is ignored, and the tile would not land where this rule says.

   40px rather than the old 52, with the padding sized so the square logo keeps a margin
   inside the plate. */
.tournament-hero__tournament-game {
  width: 40px;
  height: 40px;
  padding: 7px;
  top: 12px;
  bottom: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(20, 20, 20, .06);
  box-shadow: 0 4px 14px rgba(20, 20, 20, .16);
}
.tournament-hero__tournament-game img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* =========================================================================
 * 8. One bar system.
 * The three bars already resolved to the same #FFEE00; what made them read as
 * different was thickness, radius and track. They are pinned together here and
 * sourced from the --navi-yellow token (Pantone Yellow C) rather than literals.
 * Tracks stay context-specific on purpose: the card bar sits on photography and
 * needs a light scrim, the page scrollbars sit on white and need a dark one.
 * ========================================================================= */
.nv-tcard-progress {
  height: 4px;
  background: rgba(255, 255, 255, .30);
}
.nv-tcard-progress span {
  background: var(--navi-yellow, #FFEE00);
  border-radius: 0 2px 2px 0;
}

.swiper-scrollbar {
  height: 4px;
  background: rgba(20, 20, 20, .10);
  border-radius: 2px;
}
.swiper-scrollbar-drag {
  background: var(--navi-yellow, #FFEE00);
  border-radius: 2px;
}

/* The game-filter strip uses a native scrollbar. When scrollbar-color is set,
   Blink ignores the ::-webkit-scrollbar rules and paints its own thumb, which
   renders duller than the declared #FFEE00 — that is the odd one out in the
   owner's screenshot. Dropping scrollbar-color only where the webkit pseudo is
   supported hands Chrome and Safari back to the exact painted rules, and leaves
   Firefox (no ::-webkit-scrollbar support) on the standard property. */
@supports selector(::-webkit-scrollbar) {
  .category-block__tabs,
  [class*="__wrapp"] { scrollbar-color: auto; }
}
.category-block__tabs::-webkit-scrollbar,
[class*="__wrapp"]::-webkit-scrollbar { height: 4px; }
.category-block__tabs::-webkit-scrollbar-thumb,
[class*="__wrapp"]::-webkit-scrollbar-thumb {
  background: var(--navi-yellow, #FFEE00);
  border-radius: 2px;
}
.category-block__tabs::-webkit-scrollbar-track,
[class*="__wrapp"]::-webkit-scrollbar-track {
  background: rgba(20, 20, 20, .10);
  border-radius: 2px;
}

/* =========================================================================
 * Mobile (<=767px). The horizontal card stacks into a vertical one, and the
 * earlier layer pins the plate at 14px/44px there — restated after the desktop
 * rules above, which would otherwise win by source order.
 * ========================================================================= */
@media only screen and (max-width: 767px) {
  .tournament-card__icon { top: 12px; right: 12px; width: 40px; height: 40px; padding: 6px; border-radius: 10px; }
  .tournament-card__content { padding: 16px; }
  [data-page="publications"] .tournament-card__content { padding: 16px; }
  .card-item__svg { width: 34px; height: 34px; padding: 5px; border-radius: 9px; }
  .tournament-hero__prize { padding-left: 0; align-items: flex-start; }
  .tournament-hero__prize-info { align-items: flex-start; }
  .tournament-hero__sum { font-size: 22px; }
}

@media (prefers-reduced-motion: reduce) {
  .tournament-card { transition: none; }
  .has-hover .tournament-card:hover { transform: none; }
}

/* =========================================================================
 * Editor review, 2026-07-26: "Сделать иконки слева".
 *
 * The game badge sat in the top-RIGHT corner of the card artwork, which is where
 * the eye lands last and where it collided with whatever the key art had in that
 * corner. Moved to the top-left, so the discipline is the first thing read on
 * every card in the grid and the badges line up in a column down the row.
 *
 * Only the corner badge on the vertical cards moves. The horizontal card's icon
 * is a different element in a different role — it overhangs the thumbnail's right
 * edge on purpose (`right: -23px`, vertically centred) rather than sitting in a
 * corner — and it was not part of the note.
 * ========================================================================= */
.card-item__svg {
  right: auto;
  left: 12px;
}

/* "Хочется чтобы флаг и название города были на одной максимальной высоте.
   Сейчас флаг крупнее" (owner, 2026-07-26). At 17x12 the flag stood taller than
   the cap height of the 13px label beside it, so the pair read as an icon with a
   caption rather than one line. Sized to the letters instead. */
.card-item__country-flag,
.tournament-card__info-country img {
  width: 14px !important;
  height: 10px !important;
}

/* Type scale, second pass (owner, 2026-07-26). The card carried three sizes the
   system does not declare: the LAN chip at 10, the dates and city at 13 and the
   prize pool at 17. Snapped to the neighbouring steps — micro, small and h3 — so
   the card reads on the same scale as everything around it. */
.card-item__info-type { font-size: var(--ds-t-micro); }
.card-item__date,
.card-item__date span,
.card-item__country,
.card-item__country > span { font-size: var(--ds-t-small); }
.card-item__info-price-text { font-size: var(--ds-t-h3); }

/* =========================================================================
 * ALIGNMENT PASS — 2026-07-27.
 * Owner: "много элементов не выровнены по высоте, по горизонтали".
 *
 * A one-line tournament name and a two-line one pushed apart everything under
 * the title. Measured across the home rail: the date row sat 20.6px lower on the
 * two-line cards than on the one-line ones, and the country row travelled with
 * it, so three cards side by side showed their dates on three different lines.
 *
 * So the title reserves both of its lines and the block stops changing height.
 * The prize row needs no help: the base sheet's
 * `.card-item__title { margin-bottom: auto }` already pins the info block to the
 * card's floor, which is why it was the one row that did line up.
 *
 * Where the slack sits was decided twice. Bottom-anchoring the text was built and
 * shown (variant B, 07-27) — it holds the name the same distance above its dates
 * in every card and moves the empty line up under the artwork — and the owner
 * looked at both and kept the top-anchored one. So the text stays at the top of
 * its reserved box, which is also what lets the `-webkit-box` clamp stay in place:
 * bottom-anchoring needs a flex box and the clamp does not survive it.
 * ========================================================================= */
.card-item__title { min-height: 2.28em; }   /* 2 x its own line-height, 1.14 */

/* The city takes a line of its own, always.
 *
 * `.card-item__date` is a wrapping flex row holding the dates and, after them, the
 * country. At 1440 the dates are long enough that the country always wraps to a
 * second line — so the card reads dates / city / prize and nobody noticed the
 * placement was accidental. At 390 a short date range leaves room, the city stays
 * up on line one in some cards and drops in others, and the rows stop lining up
 * across the rail (measured 18.9px apart, 2026-07-27).
 *
 * Declaring the break makes every card read the same way at every width, and it is
 * the arrangement the desktop cards were already showing. */
.card-item__country { flex: 0 0 100%; }

/* =========================================================================
 * "Show more tournaments" — the last button in the old language (editor, 2026-07-28:
 * "это единственное место, где она осталась").
 *
 * Measured before: `a.btn.gray`, 41px tall, transparent, a hard 1px #1A191D outline,
 * 14px/600, no letter-spacing, no affordance for what it does. The redesign's own
 * show-more is `.nv-match__more` in match-page.css — 44px, card surface, hairline
 * border, 13px/700 at .03em, a chevron, and a yellow border on hover. This restates
 * that button here rather than inventing a third style.
 *
 * Scoped to `.tournament-section__btn`, the wrapper this button has to itself: `.btn.gray`
 * is a base-sheet class with three instances on the page, and restyling it globally would
 * reach places nobody asked about.
 * ========================================================================= */
.tournament-section__btn .btn.gray {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: 100%;
  height: 44px;
  padding: 0;
  border: 1px solid var(--ds-line);
  border-radius: var(--ds-r-md);
  /* `!important`, reluctantly and for a real reason: a baked overlay carries
     `.btn.gray { background: transparent !important }`, so specificity cannot reach this
     property at all — the first two attempts here measured as transparent while every
     other declaration in this same block applied. An !important tie is settled by order
     and this layer is later, so it wins. The hover below needs the same treatment for
     the same reason. */
  background-color: var(--ds-card) !important;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .03em;
  color: var(--ds-ink);
  transition: border-color .16s ease, background .16s ease;
}
/* the same chevron the match-page button uses, so "there is more below" reads the same
   way in both places */
.tournament-section__btn .btn.gray::after {
  content: "";
  width: 7px;
  height: 7px;
  margin-top: -4px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
}
.has-hover .tournament-section__btn .btn.gray:hover {
  border-color: var(--ds-yellow, #FFEE00);
  background-color: #FFFEF4 !important;
}
.tournament-section__btn .btn.gray:focus-visible {
  outline: 2px solid var(--ds-ink);
  outline-offset: 2px;
}

/* Measured on the match page's tournament card: 46x46, which the editor called too large
   ("слишком крупные"). The mark is a label on the card, not a subject of it — 36 reads as
   an identifier beside the title instead of competing with it. Mobile follows down. */
.tournament-card__icon { width: 36px; height: 36px; }
@media only screen and (max-width: 767px) {
  .tournament-card__icon { width: 32px; height: 32px; }
}

/* =========================================================================
 * «Призовой фонд» stays on mobile (editor, 2026-07-31: "В мобайле почему-то нет фразы
 * Призовой фонд").
 *
 * It was never missing. The card turns the prize column into a ROW below 768px, and the
 * rule that did it hid the label instead of placing it — `tournament-card-redesign.css`,
 * `.tournament-card__prize::before { display: none }`. That file is an earlier append
 * layer, already baked into the base sheet and no longer in the deploy list, so the fix
 * belongs here, where it still ships and where it wins by coming later.
 *
 * The label needs no positioning of its own: `order: -1` from the desktop block already
 * puts it first, and the row is `space-between`. What was in its way is
 * `.tournament-card__wrapp { width: 100% }`, which left the caption zero room; released,
 * the caption takes the left and the sum (with its LAN chip, if any) keeps the right.
 * ========================================================================= */
@media only screen and (max-width: 767px) {
  .tournament-card__prize::before { display: block; flex: 0 0 auto; }
  .tournament-card__wrapp { width: auto; justify-content: flex-end; }
}

/* ===== match-redesign.css ===== */
/* match-redesign.css — owner redesign of the two match blocks.
 *
 * WHAT / WHY (owner mockups NAVI Matches.html / NAVI Home.html, 2026-07-24)
 *   1. /matches — game filter, upcoming / live / history lists, pagination.
 *   2. Home sidebar — NAVI Matches block: live card, tabs, compact rows.
 *   Extracted spec + the owner's three layout decisions:
 *   01_main-site/docs/redesign/2026-07-24_cards-batch2/MATCH_REDESIGN_SPEC.md
 *
 * DELIVERY (append layer — same mechanism as tournament-card-redesign.css)
 *   Appended to the compiled public/css/app.min.css at deploy time (cat >>), so it
 *   lands after app.min.css and wins the cascade. The deploy MUST recompute the md5
 *   in public/mix-manifest.json or Cloudflare keeps serving the old stylesheet.
 *
 * SCOPING — READ BEFORE EDITING
 *   `.match-item` is shared by four surfaces: the /matches list, the team page, the
 *   home sidebar and the player profile's recent-matches block (which has its own
 *   skin in player-recent-matches.css). Every rule here is scoped to
 *   `.match-list-block` / `.match-list-section` (list pages) or `section.matches`
 *   (sidebar). Never style a bare `.match-item` in this file — it would leak onto
 *   the player profile.
 *
 * DEVIATIONS FROM THE MOCKUP (deliberate)
 *   - yellow: mockup ships #FFE500, we keep the brand --navi-yellow (#FFEE00)
 *   - type: mockup is Barlow / Barlow Condensed; the site ships Navi + ProximaNova.
 *     Sizes, weights and tracking are ported, families are not.
 */

/* ---- tokens -------------------------------------------------------------
 * These now point at navi-ds.css rather than holding their own literals. Eight
 * of the eleven were already byte-identical to the canon; three were not, and
 * each is an intentional merge measured below the perceptual threshold:
 *
 *   --m-divider  #F0F0EC -> --ds-cell #F0F0ED   dE 0.51
 *   --m-track    #EFEFEC -> --ds-cell #F0F0ED   dE 0.61
 *
 * The local names are kept so the ~200 rules below stay untouched; only their
 * source of truth moves. */
.match-list-block,
.match-list-section,
section.matches {
  --m-card-bg: var(--ds-card);
  --m-card-border: var(--ds-line);
  --m-radius: var(--ds-r-md);
  --m-cell-bg: var(--ds-cell);
  --m-divider: var(--ds-cell);
  --m-muted: var(--ds-ink-3);
  --m-muted-strong: var(--ds-ink-2);
  --m-control-border: var(--ds-line-strong);
  --m-track: var(--ds-cell);
  --m-live: var(--ds-live);
  --m-ink: var(--ds-ink);
}

@keyframes nvLivePulse { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }

/* =========================================================================
 * Tournaments list — banner placement (editor brief, item 7).
 * With no ongoing tournaments the banner renders above the past ones; it should
 * follow them. nvTournamentBannerOrder flags the container, the reorder happens
 * here: the container is a plain block, so it becomes a flex column purely to
 * make `order` available. Every child carries only a bottom margin, so nothing
 * depended on block-level margin collapsing. Untouched when both sections are
 * present — there the banner already sits between them.
 * ========================================================================= */
.tournament-list__body.nv-banner-last { display: flex; flex-direction: column; }
.tournament-list__body.nv-banner-last > .category-block__tabs-wrapp { order: 0; }
.tournament-list__body.nv-banner-last > .tournament-section { order: 1; }
.tournament-list__body.nv-banner-last > .main-brand__wrapp { order: 2; }

/* =========================================================================
 * Back-to-top button (editor request). Built by nvBackToTop; bottom-right,
 * because the consent widget owns the bottom-left corner. White disc with a
 * hairline edge at rest, brand yellow on hover — the same chip language the
 * cards use. Fades in rather than popping, and sits under any modal.
 * ========================================================================= */
.nv-to-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 60;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(20, 20, 20, .10);
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 4px 16px rgba(20, 20, 20, .16);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s, background .16s ease, border-color .16s ease;
}
.nv-to-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.nv-to-top__arrow {
  width: 10px;
  height: 10px;
  margin-top: 3px;
  border-left: 2px solid #1A191D;
  border-top: 2px solid #1A191D;
  transform: rotate(45deg);
}
.has-hover .nv-to-top:hover {
  background: var(--navi-yellow, #FFEE00);
  border-color: var(--navi-yellow, #FFEE00);
}
.nv-to-top:focus-visible { outline: 2px solid #1A191D; outline-offset: 2px; }

@media only screen and (max-width: 767px) {
  .nv-to-top { right: 16px; bottom: 16px; width: 40px; height: 40px; }
}
@media (prefers-reduced-motion: reduce) {
  .nv-to-top { transition: opacity .01s, visibility .01s; transform: none; }
}

/* =========================================================================
 * SHARED: the row card. Both surfaces use the same shell, they differ only in
 * how the body lays out (one line on the list pages, stacked in the sidebar).
 * ========================================================================= */
.match-list-block .match-item,
.match-list-section .match-item,
section.matches .match-item {
  position: relative;
  display: flex;
  align-items: stretch;
  background: var(--m-card-bg);
  border: 1px solid var(--m-card-border);
  border-radius: var(--m-radius);
  overflow: hidden;
  box-shadow: none;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.has-hover .match-list-block .match-item:hover,
.has-hover .match-list-section .match-item:hover,
.has-hover section.matches .match-item:hover {
  border-color: #D8D8D2;
  box-shadow: 0 6px 18px rgba(20, 20, 20, .07);
}

/* the full-cover anchor already exists in the markup — keep it on top */
.match-list-block .match-item__link,
.match-list-section .match-item__link,
section.matches .match-item__link {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  z-index: 3;
}
/* real links inside the row must outrank the cover anchor */
.match-list-block .match-item__league,
.match-list-section .match-item__league,
section.matches .match-item__league,
.match-list-block .nv-league-link,
.match-list-section .nv-league-link { position: relative; z-index: 4; }
/* The per-team link is a full-cover overlay inside its opponent. It must stay
   out of flow: as a flex item it eats the width the team name needs, which
   collapsed "NAVI" to "N". Stated explicitly rather than inherited, so a later
   layer cannot put it back into flow by accident. */
.match-list-block .match-item__opponent-link,
.match-list-section .match-item__opponent-link,
section.matches .match-item__opponent-link {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  width: auto;
  z-index: 4;
}

.match-list-block .match-item__wrapp,
.match-list-section .match-item__wrapp,
section.matches .match-item__wrapp {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: stretch;
  background: none;
}

/* game cell — tinted, divides itself from the body with its own edge */
.match-list-block .match-item__game,
.match-list-section .match-item__game,
section.matches .match-item__game {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--m-cell-bg);
  box-shadow: inset -1px 0 0 rgba(20, 20, 20, .05);
}
.match-list-block .match-item__game-icon,
.match-list-section .match-item__game-icon,
section.matches .match-item__game-icon {
  width: 26px;
  height: 26px;
  object-fit: contain;
}

/* team logo chips */
.match-list-block .match-item__opponent-icon,
.match-list-section .match-item__opponent-icon,
section.matches .match-item__opponent-icon {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  background: #fff;
  border-radius: 6px;
  overflow: hidden;
}
.match-list-block .match-item__opponent-icon-svg,
.match-list-section .match-item__opponent-icon-svg,
section.matches .match-item__opponent-icon-svg {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.match-list-block .match-item__opponent-name,
.match-list-section .match-item__opponent-name,
section.matches .match-item__opponent-name {
  font-size: 15px;
  font-weight: 700;
  color: var(--m-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* A long away name used to steal room from the home one, clipping "NAVI" to
   "N…". The home team never shrinks; the away name is the one that ellipsizes. */
.match-list-block .match-item__opponent:first-child .match-item__opponent-name,
.match-list-section .match-item__opponent:first-child .match-item__opponent-name,
section.matches .match-item__opponent:first-child .match-item__opponent-name { flex: 0 0 auto; }
/* Pinning the name is not enough — its CONTAINER is a flex item too, and the base
   sheet holds `overflow: hidden` on it (index.css, .match-item__opponent). Once the
   row runs short the container shrinks under its own content and cuts the name
   mid-glyph, with no ellipsis: the name is not what overflows, so its text-overflow
   never fires. Measured on preview before this rule — /matches lost 34px of the 79px
   "NAVI Junior", /teams/chess lost 23px of the 34px "NAVI" wherever a decimal score
   widened the middle. Production, which never shrank the container, was clean.
   `.player-recent-matches` already states this pair; the list variants were missing it. */
.match-list-block .match-item__opponent:first-child,
.match-list-section .match-item__opponent:first-child,
section.matches .match-item__opponent:first-child { flex: 0 0 auto; min-width: auto; }

/* VS + score */
.match-list-block .match-item__opponent-result,
.match-list-block .match-item__opponent-versus,
.match-list-section .match-item__opponent-result,
.match-list-section .match-item__opponent-versus,
section.matches .match-item__opponent-result,
section.matches .match-item__opponent-versus {
  padding: 0 4px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--m-muted);
}
.match-list-block .match-item__opponent-score,
.match-list-section .match-item__opponent-score,
section.matches .match-item__opponent-score {
  display: flex;
  align-items: center;
  gap: 5px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
/* the digits shipped at 17px against 14-15px team names, which made the score
   shout over the teams it belongs to — bring it back in line with them */
.match-list-block .match-item__opponent-score-first,
.match-list-block .match-item__opponent-score-second,
.match-list-section .match-item__opponent-score-first,
.match-list-section .match-item__opponent-score-second,
section.matches .match-item__opponent-score-first,
section.matches .match-item__opponent-score-second {
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
}
.match-list-block .match-item__opponent-score > span,
.match-list-section .match-item__opponent-score > span,
section.matches .match-item__opponent-score > span {
  font-size: 12px;
  font-weight: 600;
  color: var(--m-muted);
}
section.matches .match-item__opponent-score-first,
section.matches .match-item__opponent-score-second { font-size: 14px; }

/* Battle-royale rows carry a placeholder second opponent, and the base skin
   centres the group — which parked a lone "Place: 3" in the middle of the row
   while every neighbouring row starts at the left edge. */
.match-list-block .match-item__opponents--pubg,
.match-list-section .match-item__opponents--pubg,
section.matches .match-item__opponents--pubg { justify-content: flex-start; }

/* LIVE chip — the mockup's pill, replacing the legacy square badge */
.match-list-block .live,
.match-list-section .live,
section.matches .live {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
  width: auto;
  padding: 3px 7px;
  border-radius: 4px;
  background: var(--m-live);
}
/* The base sheet builds this marker as a ring PLUS a dot: `.live__circle` is a
   10px transparent circle with a 1px white border, and its ::before is the 4px
   white dot inside it, both scaling on `pulse`. Filling the ring turns it into a
   dot — but the base dot survives, offset by its own top/left:2px and running on
   a different timing, and that is the second dot seen drifting across the marker.
   The border and that pseudo-element both have to go, or one marker renders as
   two. Applies to the section headings, the only place the chip is still shown. */
.match-list-block .live__circle,
.match-list-section .live__circle,
section.matches .live__circle {
  width: 5px;
  height: 5px;
  min-width: 5px;
  border: 0;
  border-radius: 50%;
  background: #fff;
  animation: nvLivePulse 1.6s ease-in-out infinite;
}
.match-list-block .live__circle::before,
.match-list-section .live__circle::before,
section.matches .live__circle::before { content: none; }
.match-list-block .live__text,
.match-list-section .live__text,
section.matches .live__text {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #fff;
}

/* =========================================================================
 * /matches (and the team page) — one-line row.
 * The mockup lays this out at 1192px; the owner kept the 380px right rail, so
 * the same composition runs in 816px. Only the fixed columns shrink.
 * ========================================================================= */
.match-list-block .match-list-section__body,
.match-list-section .match-list-section__body {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.match-list-block .match-item,
.match-list-section .match-item { min-height: 68px; }

.match-list-block .match-item__game,
.match-list-section .match-item__game { width: 62px; }

/* A grid, not a flex row, so that every row shares the same two columns: the
   date column and the teams column. Live rows carry no date — they lead with the
   LIVE chip — and under flex that pushed their teams left of everyone else's.
   Both variants render exactly two visible children here (.nv-live-meta is
   hidden on the list pages, where the right-hand cell already says the same). */
.match-list-block .match-item__body,
.match-list-section .match-item__body {
  flex: 1 1 auto;
  min-width: 0;
  display: grid;
  grid-template-columns: 158px minmax(0, 1fr);
  align-items: center;
  column-gap: 20px;
  padding: 16px 22px;
}
.match-list-block .match-item__body > *,
.match-list-section .match-item__body > * { min-width: 0; }

/* A wider date track for the Blade-rendered lists — head-to-head, the roster's
   upcoming matches, and the match-history block (2026-07-29).

   Those three print a FINISHED match as "29 SEPTEMBER 2024 — 16:00": the year,
   because the list spans seasons (owner, 2026-07-26), and now the time as well
   ("тут даты и время матчей нужны"). 158px was sized for the date alone, and the
   cell clips at `overflow: hidden` with no ellipsis — it silently rendered
   "07 MARCH 2026 — 13:5". Widened to the worst case the four locales produce,
   measured in the row's own font rather than estimated:

     UA  29 ЛИСТОПАДА 2024 — 16:00   209.6px   <- the widest
     EN  29 SEPTEMBER 2024 — 16:00   202.5px
     RU  29 СЕНТЯБРЯ 2024 — 16:00    194.3px

   Scoped to `.nv-match__list` and not to the shared wrapper: /matches and the
   tournament lists sit in `.match-list-section` too, but their rows are Vue's and
   always carry the short "DD MMMM — HH:mm" (navi-enhance rewrites any format
   without HH:mm to exactly that). Widening the track globally would have pushed
   the teams column 56px right on a page nobody asked to change.

   A fixed track and not `max-content`: the reason this is a grid at all is that
   the teams column starts at the same x in every row, and a shrink-to-fit date
   would move it by the length of the month name. */
.nv-match__list .match-item__body {
  grid-template-columns: 205px minmax(0, 1fr);
  padding-left: 16px;
  padding-right: 16px;
}
/* Room for the opponent's name, taken back from padding rather than from the date
   (editor, 2026-07-29: "название соперника не влезает").
 *
 * The date column had to grow to 214px to hold "29 ЛИСТОПАДА 2024 — 16:00", and that came
 * straight out of the teams column: 298px on /matches against 242px here. The away name is
 * the one that ellipsizes — deliberately, so that NAVI's own name can never be cut — so the
 * squeeze lands entirely on the opponent, and "Falcons" became "Fa…".
 *
 * Reclaimed without touching either decision: the date measures 199px at its worst across
 * the four locales, so 205 is the honest track and 214 was slack; the body's 22px side
 * padding goes to 16; and the icon cell held a 24px icon in 62px. Together that returns 33px
 * to the teams column — 275px, where "NAVI vs Falcons" needs 257.
 *
 * Scoped to `.nv-match__list`, the match-page block: /matches is not short of room and its
 * geometry is approved. The two blocks still differ by the width of a year, which is the one
 * thing this list shows and that one does not (owner, 2026-07-26 — head-to-head spans
 * seasons, and this list runs 2023-2026). */
.nv-match__list .match-item__game { width: 50px; }

/* the chip sits at the start of the date column instead of stretching across it */
.match-list-block .match-item_live .live,
.match-list-section .match-item_live .live { justify-self: start; }

/* date column */
.match-list-block .match-item__date,
.match-list-section .match-item__date {
  flex: 0 0 auto;
  display: block;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .02em;
  color: var(--m-ink);
  white-space: nowrap;
}
/* the league + stage that navi-enhance.js prints next to the date duplicates the
   right-hand cell — the mockup shows it once. Hidden here, restored on mobile
   below, where the right-hand cell is not rendered at all. */
.match-list-block .match-item__date .nv-league-link,
.match-list-section .match-item__date .nv-league-link { display: none; }

.match-list-block .match-item__opponents,
.match-list-section .match-item__opponents {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
}
.match-list-block .match-item__opponent,
.match-list-section .match-item__opponent {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.match-list-block .match-item__opponent-separate,
.match-list-section .match-item__opponent-separate {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
}

/* The score / VS block used to be pinned at 100px wide by the base sheet:
 *
 *   @media (min-width: 768px) {
 *     .tournament-matches .match-item .match-item__opponent-separate { min-width: 100px }
 *   }
 *
 * The row gives the two team blocks 298px in total. At 100px for the score, two teams whose
 * names are not short stop fitting: NAVI (26 logo + 10 gap + 36 name = 72) plus Karmine Corp
 * (26 + 10 + 98 = 134) plus the score plus two 10px gaps comes to 326 into 298. flex-shrink
 * then trims BOTH blocks and each clips its own name — "NAVI" rendered as "NA". It showed on
 * every head-to-head row, and already affected three of 25 names on /matches.
 *
 * 100px was never needed: measured content is 26-44px for VS, 49px for a score and 73px for
 * the widest real case, `Place: 3` (battle-royale placement). The block is `flex: 0 0 auto`,
 * so its box is max(min-width, content) — lowering the floor to 72px leaves placement rows at
 * their natural 73px and returns 28px to the names, exactly the deficit measured above.
 *
 * Specificity: the base rule is (0,3,0). This override matches it and wins on source order,
 * which is why `.match-item` appears in the selector rather than the shorter form above.
 * Scoped to the same breakpoint as the rule it replaces — below 768px the row stacks and the
 * base sheet sets no floor at all. */
@media (min-width: 768px) {
  .match-list-block .match-item .match-item__opponent-separate,
  .match-list-section .match-item .match-item__opponent-separate {
    min-width: 72px;
  }
}

/* live rows print the meta line instead of a date — keep it on the same line */
.match-list-block .nv-live-meta,
.match-list-section .nv-live-meta {
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 500;
  color: var(--m-muted);
  white-space: nowrap;
}

/* tournament cell on the right */
.match-list-block .match-item__league,
.match-list-section .match-item__league {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 11px;
  width: 232px;
  margin: 12px 0;
  padding: 0 18px 0 20px;
  border-left: 1px solid var(--m-divider);
  background: none;
}
.match-list-block .match-item__league-img,
.match-list-section .match-item__league-img {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  background: var(--m-cell-bg);
  border-radius: 7px;
  overflow: hidden;
}
.match-list-block .match-item__league-img img,
.match-list-section .match-item__league-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.match-list-block .match-item__league-text,
.match-list-section .match-item__league-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.match-list-block .match-item__league .match-item__league-name,
.match-list-section .match-item__league .match-item__league-name {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--m-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.match-list-block .match-item__league .match-item__league-stage,
.match-list-section .match-item__league .match-item__league-stage {
  font-size: 12px;
  font-weight: 400;
  color: var(--m-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* The LIVE marker belongs to the block heading, not the card — same rule the
   sidebar follows. nvLiveInHeading clones the chip onto the heading (the card's
   own node is owned by the Vue bundle and cannot be moved); the original is
   hidden here. It matters most on mobile, where the stacked card left the chip
   floating on a line of its own. */
.match-list-block .match-item_live .live,
.match-list-section .match-item_live .live { display: none; }
/* with the chip gone the live row has a single visible grid item, which would
   otherwise fall into the date column and drag the teams out of line with every
   row below — pin it to the teams column instead */
.match-list-block .match-item_live .match-item__opponents,
.match-list-section .match-item_live .match-item__opponents { grid-column: 2; }
.match-list-block .main-title .nv-live-head,
.match-list-section .main-title .nv-live-head {
  display: inline-flex;
  margin-left: auto;
  padding: 5px 10px;
  gap: 7px;
}
.match-list-block .main-title .nv-live-head .live__circle,
.match-list-section .main-title .nv-live-head .live__circle { width: 6px; height: 6px; min-width: 6px; }
.match-list-block .main-title .nv-live-head .live__text,
.match-list-section .main-title .nv-live-head .live__text { font-size: 11.5px; }

/* section heading — yellow bar + uppercase label */
.match-list-block .main-title,
.match-list-section .main-title {
  display: flex;
  /* size, leading, gap, bar and the space below all come from the canon in
     chrome.css (2026-07-27). These two carry more classes than `.main-title` and
     were quietly restating three of them. */
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--m-ink);
}
.match-list-block .main-title::before,
.match-list-section .main-title::before {
  content: "";
  flex: 0 0 auto;
  background: var(--navi-yellow, #FFEE00);
}

/* the live match keeps its own accent block (owner: keep it, restyle it) —
   same yellow card as the sidebar's live card in the home mockup */
.match-list-block .match-item_live,
.match-list-section .match-item_live {
  background: var(--navi-yellow, #FFEE00);
  border-color: transparent;
  box-shadow: 0 2px 6px rgba(20, 20, 20, .06), 0 12px 30px rgba(233, 196, 0, .30);
}
.match-list-block .match-item_live .match-item__game,
.match-list-section .match-item_live .match-item__game {
  background: #fff;
  box-shadow: inset -1px 0 0 rgba(20, 20, 20, .08);
}
/* The live row's base rules give it a 50px game cell and a 30px league cell with
   no left padding, which threw its columns out of line with every row below it.
   Those rules run five compound selectors deep
   (`[data-page="match-list"] .tournament-matches .match-item.match-item_live …`),
   so the corrections have to match that weight to land — hence the long chains
   rather than the short ones used everywhere else in this file. */
.match-list-block .tournament-matches .match-item.match-item_live .match-item__game,
.match-list-section .tournament-matches .match-item.match-item_live .match-item__game { width: 62px; }
.match-list-block .tournament-matches .match-item.match-item_live .match-item__league,
.match-list-section .tournament-matches .match-item.match-item_live .match-item__league {
  width: 232px;
  margin: 12px 0;
  padding: 0 18px;
  border-left-color: rgba(20, 20, 20, .12);
}
.match-list-block .match-item_live .match-item__league-img,
.match-list-section .match-item_live .match-item__league-img { background: rgba(255, 255, 255, .55); }
.match-list-block .match-item_live .match-item__league-stage,
.match-list-section .match-item_live .match-item__league-stage,
.match-list-block .match-item_live .nv-live-meta,
.match-list-section .match-item_live .nv-live-meta { color: rgba(20, 20, 20, .62); }
.has-hover .match-list-block .match-item_live:hover,
.has-hover .match-list-section .match-item_live:hover {
  border-color: transparent;
  box-shadow: 0 2px 6px rgba(20, 20, 20, .06), 0 16px 34px rgba(233, 196, 0, .40);
}

/* Game filter tiles — square, spaced, per the mockup (54x54, 8px gap, r9,
   26px logo). They shipped 54x62 and edge-to-edge, so the row read as one
   welded strip rather than a set of buttons. */
/* The strip scrolls, but nothing said so: on macOS the scrollbar is an overlay
   that hides at rest, so the row just looked cut off. These are scroll shadows
   (the background-attachment:local technique) — the cover layers scroll away
   with the content while the shadows stay pinned, so an edge shadow appears
   only while there is more strip in that direction and fades out at each end.
   Pure CSS, no scroll listener. */
.category-block__tabs {
  display: flex;
  gap: 8px;
  padding-bottom: 4px;
  overflow-x: auto;
  /* #EEEDEF is the measured page background behind the strip */
  background:
    linear-gradient(to right, var(--m-page-bg, #EEEDEF) 40%, rgba(238, 237, 239, 0)) left center,
    linear-gradient(to left, var(--m-page-bg, #EEEDEF) 40%, rgba(238, 237, 239, 0)) right center,
    radial-gradient(farthest-side at 0 50%, rgba(20, 20, 20, .14), rgba(20, 20, 20, 0)) left center,
    radial-gradient(farthest-side at 100% 50%, rgba(20, 20, 20, .14), rgba(20, 20, 20, 0)) right center;
  background-repeat: no-repeat;
  background-size: 30px 100%, 30px 100%, 18px 100%, 18px 100%;
  background-attachment: local, local, scroll, scroll;
}
/* the yellow track under the strip is the second half of the signal: styling the
   webkit scrollbar opts Blink out of overlay scrollbars, so it stays visible at
   rest instead of fading away like the OS one */
/* The slider under the strip, built by nvFilterStripHint. Same treatment as the
   carousel scrollbars elsewhere on the site — light track, brand-yellow drag —
   so the strip reads as a slider at rest instead of a row that happens to be
   cut off. It only appears when the strip actually overflows. */
/* The wrapper is a flex row, so the bar is taken out of flow and pinned under
   the strip rather than sitting next to it as a zero-width sibling. The wrapper
   gains the room the bar needs. */
.nv-strip-wrap { position: relative; }
.nv-strip-wrap.nv-scrollable { padding-bottom: 14px; }
.nv-strip-bar {
  display: none;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 4px;
  border-radius: 2px;
  background: rgba(20, 20, 20, .10);
  cursor: pointer;
  touch-action: none;
}
.nv-strip-wrap.nv-scrollable .nv-strip-bar { display: block; }
.nv-strip-bar__drag {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  border-radius: 2px;
  background: var(--navi-yellow, #FFEE00);
}
/* the strip keeps scrolling natively; its own bar just steps aside */
.category-block__tabs { scrollbar-width: none; }
.category-block__tabs::-webkit-scrollbar { height: 0; width: 0; }
.category-block__tabs .category-block__tab {
  flex: 0 0 auto;
  width: 54px;
  height: 54px;
  padding: 0;
  border-radius: 9px;
  border: 1px solid var(--m-control-border, #E2E2DE);
  background: #fff;
}
.category-block__tabs .category-block__tab-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: 0;
}
.category-block__tabs .category-block__tab-link img {
  width: 26px;
  height: 26px;
  object-fit: contain;
}
.category-block__tabs .category-block__tab-link span {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.category-block__tabs .category-block__tab_active {
  background: var(--navi-yellow, #FFEE00);
  border-color: var(--navi-yellow, #FFEE00);
}
.has-hover .category-block__tabs .category-block__tab:not(.category-block__tab_active):hover {
  border-color: #C9C9C2;
}

/* pagination */
.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  list-style: none;
}
.pagination { margin-top: 6px; }
.pagination .page-item { display: flex; align-items: center; margin: 0; }
.pagination .page-link {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  width: auto;
  height: 36px;
  line-height: 1;
  padding: 0 9px;
  border: 1px solid var(--m-control-border, #E2E2DE);
  border-radius: 7px;
  background: #fff;
  font-size: 14.5px;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--m-muted-strong, #55555A);
}
.has-hover .pagination .page-link:hover { border-color: #C9C9C2; color: #141414; }
.pagination .page-link_active,
.has-hover .pagination .page-link_active:hover {
  background: var(--navi-yellow, #FFEE00);
  border-color: var(--navi-yellow, #FFEE00);
  color: #141414;
}

/* =========================================================================
 * Home sidebar — stacked, compact rows.
 * ========================================================================= */
section.matches { display: flex; flex-direction: column; gap: 12px; }
/* the base skin parks a 60px margin under the live block; the column gap above
   owns the rhythm now */
section.matches .matches_live { display: flex; flex-direction: column; gap: 12px; margin-bottom: 0; }
section.matches .matches__mobile { margin: 0; }

/* block header: yellow bar + title, LIVE pill pushed to the right */
section.matches .matches__header { margin: 0; }
section.matches .matches_live .matches__header {
  display: flex;
  align-items: center;
  gap: 12px;
}
/* Size, leading, gap and bar all come from the canon in chrome.css now — the local
   18px and the local 5x22 bar were exactly what made the two columns of the home page
   set at different sizes with their bars at different heights (owner, 2026-07-27).
   Only what is genuinely this heading's own is left here. */
section.matches .main-title_sidebar {
  display: flex;
  margin: 0;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--m-ink);
}
section.matches .matches_live .main-title_sidebar::before {
  content: "";
  flex: 0 0 auto;
  background: var(--navi-yellow, #FFEE00);
}
/* the header pill is now the only LIVE marker in the block, so it carries the
   mockup's full size rather than the smaller in-card chip proportions */
section.matches .matches_live .matches__header .live {
  margin-left: auto;
  padding: 5px 10px;
  gap: 7px;
}
section.matches .matches_live .matches__header .live__circle { width: 6px; height: 6px; min-width: 6px; }
section.matches .matches_live .matches__header .live__text { font-size: 11.5px; }

/* the live card */
section.matches .matches_live .match-item {
  min-height: 0;
  background: var(--navi-yellow, #FFEE00);
  border-color: transparent;
  box-shadow: 0 2px 6px rgba(20, 20, 20, .06), 0 12px 30px rgba(233, 196, 0, .38);
}
section.matches .matches_live .match-item__game {
  width: 54px;
  background: #fff;
  box-shadow: inset -1px 0 0 rgba(20, 20, 20, .08);
}
/* The LIVE marker lives once, in the block header (owner, 2026-07-24) — the
   card no longer repeats it, so its own chip is dropped and the tournament line
   takes the lead, mirroring how the date leads an ordinary row. */
section.matches .matches_live .match-item .live { display: none; }

/* Tournament + stage on the live card. navi-enhance.js writes this line, but the
   base skin hides it outside mobile because the yellow .match-item__league band
   used to carry the same text — and that band is gone from the sidebar now. */
section.matches .nv-live-meta,
section.matches .matches_live .nv-live-meta {
  display: block;
  order: 1;
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .02em;
  color: var(--m-ink);
}
section.matches .matches_live .match-item__opponents { order: 2; }
/* one line, then the teams — the same two-line rhythm as the rows below */
section.matches .matches_live .match-item__body { gap: 7px; padding: 13px 15px 14px; }
.has-hover section.matches .matches_live .match-item:hover {
  border-color: transparent;
  box-shadow: 0 2px 6px rgba(20, 20, 20, .06), 0 16px 34px rgba(233, 196, 0, .46);
}

/* rows */
section.matches .matches__body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
section.matches .match-item { min-height: 84px; }
section.matches .match-item__game { width: 52px; }
section.matches .match-item__body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  /* a column flexbox stretches its children by default, which blew the LIVE
     pill out to the full row width */
  align-items: flex-start;
  justify-content: center;
  gap: 5px;
  padding: 11px 13px 12px;
}
section.matches .match-item__date,
section.matches .match-item__opponents { width: 100%; }
section.matches .match-item__date {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 5px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .02em;
  color: var(--m-ink);
}
/* the timestamp takes the first line on its own; league and stage share the
   muted second line. The separator between them already ships in the base
   skin — adding one here produced a double slash. */
section.matches .match-item__date > [data-timezone] { flex: 0 0 100%; }
section.matches .match-item__date .match-item__league-name,
section.matches .match-item__date .match-item__league-stage {
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: 0;
  color: var(--m-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
section.matches .match-item__opponents {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  min-width: 0;
}
section.matches .match-item__opponent {
  position: relative;
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}
/* the sidebar runs one step smaller than the list pages, per the mockup */
section.matches .match-item__opponent-name { font-size: 13.5px; }
section.matches .match-item__opponent-icon { width: 20px; height: 20px; border-radius: 5px; }
section.matches .match-item__opponent-result,
section.matches .match-item__opponent-versus {
  padding: 0 2px;
  font-size: 10.5px;
  letter-spacing: .12em;
}
/* battle-royale rows ship a placeholder second opponent — an empty icon and an
   empty name, plus an inline width:100% (see upcomingSeries/show.blade.php).
   Drop the stray white chip and stop the placeholder stretching the row. */
section.matches .match-item__opponent-icon:empty { display: none; }
section.matches .match-item__opponents--pubg .match-item__opponent[style] { width: auto !important; }
/* The right-hand tournament cell has no room at 329px — the sidebar carries the
   same information on the muted line under the date. The base skin re-shows it
   for the live card via `.match-item_live:first-child .match-item__league`,
   which outranks a plain descendant selector, so that case is matched head-on. */
section.matches .match-item__league,
section.matches .match-item_live:first-child .match-item__league { display: none; }

/* =========================================================================
 * Sidebar tabs (owner decision: adopt the mockup's segmented control on
 * desktop). The markup ships with the site but its toggle was never wired —
 * navi-enhance.js owns the behaviour, this owns the look.
 * ========================================================================= */
section.matches .matches__mobile-controls {
  display: flex;
  gap: 2px;
  padding: 3px;
  background: var(--m-track);
  border-radius: 8px;
}
section.matches .matches__mobile-control {
  flex: 1 1 0;
  /* The base sheet spaces these as a plain text row with `margin-right: 30px`.
     Inside a segmented control that margin survives on the LAST tab too, so 30px
     of the strip belonged to no button — it looked like part of the control but
     did not answer a click, and it stopped `flex: 1 1 0` from splitting the strip
     in half (editor, 2026-07-26: "кусок плашки лишний и не является кнопкой"). */
  margin-right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 6px;
  border: 1px solid transparent;
  border-radius: 6px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--m-muted);
  text-align: center;
  transition: background .14s ease, color .14s ease;
}
section.matches .matches__mobile-control.is-active {
  background: #fff;
  border-color: var(--m-control-border);
  box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
  color: var(--m-ink);
}
.has-hover section.matches .matches__mobile-control:not(.is-active):hover { color: var(--m-ink); }

/* with tabs in place the per-list heading repeats the tab label */
section.matches .matches__mobile .matches-list > .matches__header { display: none; }

/* only the selected list is mounted — see nvSidebarTabs in navi-enhance.js.
   The container is hidden alongside it, but never the .matches__mobile wrapper:
   the wrapper of the history block also holds "All matches", which stays put on
   both tabs. */
section.matches .matches-list { display: none; }
section.matches .matches-list.is-active { display: block; }
section.matches .nv-tab-hidden { display: none; }

/* "All matches" — a quiet link with a yellow underline, per the mockup. The
   markup is .matches__btn > a.btn.gray > span.btn__text, and .btn.gray ships a
   full-width grey button, so the reset has to name the button class. */
section.matches .matches__btn { display: flex; justify-content: flex-end; margin: 0; }
section.matches .matches__btn .btn,
section.matches .matches__btn .btn.gray {
  display: inline-flex;
  width: auto;
  min-width: 0;
  height: auto;
  min-height: 0;
  /* padding is NOT restated (2026-07-31, editor: the yellow rule sits at a different
     distance from the words in different places). The canon in chrome.css sets
     `0 4px 3px 0` — the 3px IS the distance from the letters to the rule, the 4px is
     the room the arrow needs on hover. This selector carries an extra element, so a
     `padding: 0` here outranked the canon and pinned the rule flush to the baseline:
     measured site-wide, one control painted its underline at four distances
     (0.2 / 1.8 / 3.2 / 3.3px). Same disease as the yellow heading bar — one component
     stated in three places, and the most specific statement was the wrong one. */
  border: none;
  border-radius: 0;
  background: none;
  /* The yellow underline is NOT restated here (2026-07-29). It duplicated the value the
     section-link canon in chrome.css already sets — but from a selector carrying an extra
     element, so it outranked that canon's :hover and pinned the underline yellow in every
     state. That was the second half of why "All matches" was the one control of six whose
     hover did nothing; the first half was a `-3px` override below, also gone now. */
}
section.matches .matches__btn .btn__text {
  /* Size and tracking are the canon's too — restating them here made this label 13px
     with no tracking against the canon's 12.5px at .04em, so the same control read as
     two different controls. Only the ink stays, which the canon inherits anyway. */
  font-weight: 700;
  text-transform: none;
  color: var(--m-ink);
}
/* The hover that used to live here — `inset 0 -3px 0 yellow` — is DELETED rather than
   overridden (2026-07-29). It predates the section-link canon in chrome.css and was more
   specific than it, so "All matches" on the home page was the one control of six that
   thickened its yellow underline on hover while its five siblings turned theirs near-black.
   Measured across eight pages before touching anything. Removing the cause is what makes
   the canon apply here; adding a counter-rule would have left two answers in the file. */

/* =========================================================================
 * Player page — recent matches (editor brief, item 5).
 * The block runs at the same 816px as the match list and its markup is the same
 * row, so it takes the list-page treatment rather than the sidebar's: white
 * cards instead of the grey strips it shipped with. Scoped on its own class,
 * since the shared rules above deliberately never touch a bare .match-item.
 * ========================================================================= */
/* Same tokens as the block at the top of this file — the player page is a scope
 * the shared rules deliberately do not reach. Re-pointed at navi-ds.css too, so
 * the two copies can no longer drift apart by eye. */
.player-recent-matches {
  --m-card-bg: var(--ds-card);
  --m-card-border: var(--ds-line);
  --m-cell-bg: var(--ds-cell);
  --m-divider: var(--ds-cell);
  --m-muted: var(--ds-ink-3);
  --m-ink: var(--ds-ink);
}
.player-recent-matches .matches__body { display: flex; flex-direction: column; gap: 10px; }
.player-recent-matches .match-item {
  position: relative;
  display: flex;
  align-items: stretch;
  min-height: 68px;
  background: var(--m-card-bg);
  border: 1px solid var(--m-card-border);
  border-radius: 10px;
  overflow: hidden;
  transition: border-color .16s ease, box-shadow .16s ease;
}
.has-hover .player-recent-matches .match-item:hover {
  border-color: #D8D8D2;
  box-shadow: 0 6px 18px rgba(20, 20, 20, .07);
}
.player-recent-matches .match-item__link { position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 3; }
.player-recent-matches .match-item__wrapp { flex: 1 1 auto; min-width: 0; display: flex; align-items: stretch; background: none; }
/* The base gives this cell `min-height: 100%`, which inside the sidebar-flavoured
   wrapper this block sits in resolves into a height cycle and pushed the row to
   96px against the match list's 68. Cleared, along with the same on the two
   ancestors, so the row is content-sized like every other. */
.player-recent-matches .match-item__wrapp,
.player-recent-matches .match-item__body { min-height: 0; }
.player-recent-matches .match-item__game {
  flex: 0 0 auto;
  width: 62px;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--m-cell-bg);
  box-shadow: inset -1px 0 0 rgba(20, 20, 20, .05);
}
.player-recent-matches .match-item__game-icon { width: 26px; height: 26px; object-fit: contain; }
.player-recent-matches .match-item__body {
  flex: 1 1 auto;
  min-width: 0;
  display: grid;
  grid-template-columns: 158px minmax(0, 1fr);
  align-items: center;
  align-content: center;
  column-gap: 20px;
  padding: 16px 22px;
}
.player-recent-matches .match-item__body > * { min-width: 0; }
.player-recent-matches .match-item__date {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .02em;
  color: var(--m-ink);
  white-space: nowrap;
}
/* the tournament name and stage already sit in the right-hand cell */
.player-recent-matches .match-item__date .match-item__league-name,
.player-recent-matches .match-item__date .match-item__league-stage { display: none; }
.player-recent-matches .match-item__opponents { display: flex; align-items: center; gap: 10px; margin: 0; min-width: 0; }
.player-recent-matches .match-item__opponents--pubg { justify-content: flex-start; }
.player-recent-matches .match-item__opponent { position: relative; display: flex; align-items: center; gap: 10px; min-width: 0; }
/* the home side never shrinks — the date column is wide here and squeezed
   "NAVI" down to "NAV"; only the away name may ellipsize */
.player-recent-matches .match-item__opponent:first-child { flex: 0 0 auto; min-width: auto; }
.player-recent-matches .match-item__opponent:first-child .match-item__opponent-name { flex: 0 0 auto; overflow: visible; }
.player-recent-matches .match-item__opponent-icon {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  background: #fff;
  border-radius: 6px;
  overflow: hidden;
}
.player-recent-matches .match-item__opponent-icon:empty { display: none; }
.player-recent-matches .match-item__opponent-icon-svg { width: 100%; height: 100%; object-fit: contain; }
.player-recent-matches .match-item__opponent-name {
  font-size: 15px;
  font-weight: 700;
  color: var(--m-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.player-recent-matches .match-item__opponent-separate { display: flex; align-items: center; flex: 0 0 auto; }
.player-recent-matches .match-item__opponent-score { display: flex; align-items: center; gap: 5px; font-weight: 700; font-variant-numeric: tabular-nums; }
.player-recent-matches .match-item__opponent-score-first,
.player-recent-matches .match-item__opponent-score-second { font-size: 15px; font-weight: 700; line-height: 1; }
.player-recent-matches .match-item__opponent-score > span { font-size: 12px; font-weight: 600; color: var(--m-muted); }
/* the W/L/D marker keeps its own colours from player-recent-matches.css */
.player-recent-matches .prm-result {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 5px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
}
/* the right-hand tournament cell is in the markup but was hidden — it belongs
   here now, exactly as on the match list */
.player-recent-matches .match-item__league {
  position: relative;
  z-index: 4;
  flex: 0 0 auto;
  display: flex;
  /* This cell renders 70px tall here against 42 on the match list, which pushed
     the whole row to 96 against 68. Its computed styles are identical to the
     list's, its two children sit side by side at 34 and 33, it has no vertical
     padding and no pseudo-elements — the extra 36px was not traced to a rule.
     Sized to its content instead and centred, which is what the list resolves to
     anyway. Revisit if a tournament name ever needs two lines here. */
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  align-self: center;
  height: 34px;
  gap: 11px;
  width: 232px;
  margin: 0;
  padding: 0 18px 0 20px;
  border-left: 1px solid var(--m-divider);
  background: none;
}
.player-recent-matches .match-item__league-img {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  background: var(--m-cell-bg);
  border-radius: 7px;
  overflow: hidden;
}
.player-recent-matches .match-item__league-img img { width: 100%; height: 100%; object-fit: cover; }
.player-recent-matches .match-item__league-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.player-recent-matches .match-item__league .match-item__league-name {
  display: block;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--m-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.player-recent-matches .match-item__league .match-item__league-stage {
  display: block;
  font-size: 12px;
  font-weight: 400;
  color: var(--m-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* heading and the trailing link, same language as the match list */
/* Size, leading, gap, bar and the space below come from the canon (chrome.css). This
   block was the last copy of them, and its `align-items: center` plus its own 21px were
   why the player page still had one heading at 21 while the two beside it were at 16. */
.player-recent-matches .main-title {
  display: flex;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--m-ink);
}
.player-recent-matches .main-title::before {
  content: "";
  flex: 0 0 auto;
  background: var(--navi-yellow, #FFEE00);
}
.player-recent-matches .matches__btn { display: flex; justify-content: flex-end; margin: 14px 0 0; }
.player-recent-matches .matches__btn .btn,
.player-recent-matches .matches__btn .btn.gray {
  display: inline-flex;
  width: auto;
  min-width: 0;
  height: auto;
  min-height: 0;
  /* padding is NOT restated (2026-07-31, editor: the yellow rule sits at a different
     distance from the words in different places). The canon in chrome.css sets
     `0 4px 3px 0` — the 3px IS the distance from the letters to the rule, the 4px is
     the room the arrow needs on hover. This selector carries an extra element, so a
     `padding: 0` here outranked the canon and pinned the rule flush to the baseline:
     measured site-wide, one control painted its underline at four distances
     (0.2 / 1.8 / 3.2 / 3.3px). Same disease as the yellow heading bar — one component
     stated in three places, and the most specific statement was the wrong one. */
  border: none;
  border-radius: 0;
  background: none;
  /* Same removal as the `section.matches` twin above, and it is the reason to sweep by
     SELECTOR rather than by page: the eight-page hover audit never opened a player page,
     so this copy would have survived a fix that looked finished. */
}
.player-recent-matches .matches__btn .btn__text {
  /* Size and tracking are the canon's too — restating them here made this label 13px
     with no tracking against the canon's 12.5px at .04em, so the same control read as
     two different controls. Only the ink stays, which the canon inherits anyway. */
  font-weight: 700;
  text-transform: none;
  color: var(--m-ink);
}

/* =========================================================================
 * Mobile. The list pages drop the right-hand tournament cell, so the inline
 * league line comes back; the sidebar already stacks.
 * ========================================================================= */
@media only screen and (max-width: 767px) {
  /* the two-column grid collapses to a single stacked column */
  .match-list-block .match-item__body,
  .match-list-section .match-item__body {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    justify-items: start;
    row-gap: 5px;
    column-gap: 0;
    padding: 11px 13px 12px;
  }
  .match-list-block .match-item,
  .match-list-section .match-item { min-height: 0; }
  .match-list-block .match-list-section__body,
  .match-list-section .match-list-section__body { gap: 8px; }
  /* filter tiles shrink but keep the square, spaced shape */
  .category-block__tabs { gap: 6px; }
  .category-block__tabs .category-block__tab { width: 46px; height: 46px; border-radius: 8px; }
  .category-block__tabs .category-block__tab-link img { width: 22px; height: 22px; }
  .pagination { gap: 6px; flex-wrap: wrap; }
  .pagination .page-link { min-width: 32px; height: 32px; font-size: 13.5px; }
  /* player page: same single-column stack as the match list */
  .player-recent-matches .match-item__body {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    justify-items: start;
    row-gap: 5px;
    column-gap: 0;
    padding: 11px 13px 12px;
  }
  .player-recent-matches .match-item { min-height: 0; }
  .player-recent-matches .match-item__game { width: 52px; }
  .player-recent-matches .match-item__league { display: none; }
  .player-recent-matches .match-item__date .match-item__league-name,
  .player-recent-matches .match-item__date .match-item__league-stage {
    display: inline;
    font-size: 11.5px;
    font-weight: 400;
    letter-spacing: 0;
    color: var(--m-muted);
  }
  .player-recent-matches .match-item__date { flex-wrap: wrap; font-size: 12.5px; }
  .match-list-block .match-item__date,
  .match-list-section .match-item__date {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 6px;
    font-size: 12.5px;
  }
  .match-list-block .match-item__date .nv-league-link,
  .match-list-section .match-item__date .nv-league-link {
    display: inline;
    font-size: 11.5px;
    font-weight: 400;
    letter-spacing: 0;
    color: var(--m-muted);
  }
  .match-list-block .match-item__game,
  .match-list-section .match-item__game { width: 52px; }
  .match-list-block .match-item__league,
  .match-list-section .match-item__league { display: none; }
  /* The base sheet re-shows the in-card LIVE chip here with
     `.tournament-matches .match-item_live .live { display: inline-flex !important }`.
     Nothing without !important can answer that, and the chip has to go: it now
     lives on the section heading. This is the only !important in the file. */
  .match-list-block .match-item_live .live,
  .match-list-section .match-item_live .live { display: none !important; }
  /* the desktop rule pins the live row's teams to the teams column; here the
     grid is a single column, so leave placement to flow or the meta line and
     the teams end up side by side instead of stacked */
  .match-list-block .match-item_live .match-item__opponents,
  .match-list-section .match-item_live .match-item__opponents { grid-column: auto; }
  section.matches .matches__mobile-control { letter-spacing: .08em; }
}

@media (prefers-reduced-motion: reduce) {
  .match-list-block .match-item,
  .match-list-section .match-item,
  section.matches .match-item { transition: none; }
  .match-list-block .live__circle,
  .match-list-section .live__circle,
  section.matches .live__circle { animation: none; }
}

/* =========================================================================
 * Editor review, 2026-07-26.
 * ========================================================================= */

/* "Убрать ползунки". The tab strip above the sidebar list is a scroll container
   (`overflow: auto` on both axes) so the tabs can slide on a narrow column. On
   Windows, where scrollbars are not overlays, that painted a horizontal bar under
   the tabs AND a vertical one down the side — the vertical one for 6px of
   overflow that nothing can usefully scroll. The scrolling stays, its furniture
   goes. */
.matches__mobile-controls {
  overflow-y: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.matches__mobile-controls::-webkit-scrollbar { width: 0; height: 0; display: none; }

/* "Для батлроялей в матчах шрифт слишком мелкий". A battle-royale row states a
   placement instead of a score, and the two parts were inverted: the word
   "Place:" was 15px bold ink while the number itself — the only part anyone reads
   — was a 12px muted span. The number now carries the row's own score size.
   Targeting the unclassed direct-child span keeps duel rows untouched: there the
   score lives inside `.match-item__opponent-score-wrapp` and no such span exists.

   The three scopes are restated from the rule earlier in this file that set the
   same span to 12px/600 muted — it carries two classes, so a bare selector loses
   to it. `.player-recent-matches` joins them because the player page renders
   these rows as well. */
.match-list-block .match-item__opponent-score > span,
.match-list-section .match-item__opponent-score > span,
section.matches .match-item__opponent-score > span,
.player-recent-matches .match-item__opponent-score > span {
  font-size: 17px;
  font-weight: 700;
  color: var(--ds-ink);
}

/* "Кнопку all matches нужно подтянуть ближе к матчам, а то она сейчас оторвана"
   (owner, 2026-07-26). The link sat 72px below the last row: `.matches-list`
   carries a 60px bottom margin and `.matches__body` another 35px, both written
   for a block that used to end there. In a sidebar where the link belongs to the
   list above it, that reads as a stray control. */
/* The 60px lives on `.matches__mobile .matches-list.forthcoming` — three classes,
   so a two-class scope loses to it. Matched here rather than escalated. */
section.matches .matches-list.forthcoming,
section.matches .matches-list.completed { margin-bottom: 0; }
section.matches .matches__body { margin-bottom: var(--ds-s-5); }

/* "Если «Предстоящие» активны, блок матчей прям впритык к ней. Если прошедшие,
   то есть отступ." (owner, 2026-07-26). The two lists come from different
   templates: the upcoming one sits in the same container as the tab strip and
   inherited no gap at all, while the history block is a separate section and
   brought its own 12px.

   The spacing has to hang off the list, not off the strip. `section.matches` is a
   flex column with `gap: 12px`, and the history list is a SEPARATE block in that
   column — so a margin under the strip lands on top of that gap and doubles it,
   while the upcoming list, being inside the same block as the strip, gets no gap
   at all. Put the 12px on the container that actually holds a visible list and
   both states land on the same number, in every locale: the labels change width,
   the rhythm does not. */
section.matches .matches__mobile-controls { margin-bottom: 0; }
section.matches .matches__mobile-container { margin-top: var(--ds-s-4); }
section.matches .matches--history .matches__mobile-container { margin-top: 0; }
section.matches .matches__mobile { margin-bottom: 0; }

/* Type scale, second pass (owner, 2026-07-26): the match row's own two off-scale
   sizes join the system. 13.5 -> 14 is the body step, 10.5 -> 11.5 the micro one.
   Applied in this layer rather than on the home page alone, because these rows are
   the same component on /matches, the team page and the sidebar — scoping it to one
   surface is what left the section headings a pixel apart between pages. */
.match-list-block .match-item__opponent-name,
.match-list-section .match-item__opponent-name,
section.matches .match-item__opponent-name { font-size: var(--ds-t-body); }
.match-list-block .match-item__opponent-versus,
.match-list-section .match-item__opponent-versus,
section.matches .match-item__opponent-versus { font-size: var(--ds-t-micro); }

/* the sidebar's own "All matches" link was the page's last off-scale size (13px) */
section.matches .matches__btn .btn.gray,
section.matches .matches__btn .btn.gray .btn__text { font-size: var(--ds-t-small); }

/* =========================================================================
 * ALIGNMENT PASS — 2026-07-27.
 * ========================================================================= */

/* 1. The home band's two columns started on different lines.
 *
 *    The news column's heading is a 39.3px flex row — its "Все новости" link,
 *    not the word, sets that height — while the sidebar's live heading was 26px.
 *    Both begin at the same y, so the two titles sat on different centre lines
 *    and, worse, the first news row started 21.2px below the first match card.
 *
 *    Giving the sidebar heading the news heading's box puts both titles on one
 *    line, and matching the 20px the news heading carries under it starts both
 *    columns' first row at the same y. The 12px on `section.matches` is
 *    block-to-block spacing and stays as it is. */
/* No min-height any more. That 39px was measured off the news column's heading back
   when a heading with a link beside it was taller than one without; the canon in
   chrome.css removed that difference, so both columns' headings are now the same
   27.3px box and matching them needs nothing but the same space underneath. A
   hard-coded height here would put the sidebar's heading 6px below the news one
   again — which is exactly what it did (measured 2026-07-27). */
section.matches .matches_live { gap: var(--ds-sec-below); }

/* 2. The "/" between a tournament and its stage sat off-centre on desktop.
 *
 *    `.match-item__date` is a flex row with a 5px column gap and the base sheet
 *    writes the separator as `content: " / "` — spaces included. The leading
 *    space sits inside the name's own box; the trailing one is added to the flex
 *    gap. Measured: 2.9px to the left of the slash, 7.9px to its right.
 *    Dropping both spaces and paying the left side from a margin gives it the
 *    same 5px on each side — but only after the base sheet's own
 *    `margin-right: 3px` on the name comes off too. That 3px was the other half
 *    of the legacy spaced separator, and left in place it kept the right side at
 *    8px against the left's 5px. With it gone the flex gap is the only thing
 *    between the slash and the stage, and both sides read 5px.
 *
 *    Mobile is deliberately untouched: below 768px the separator moves onto the
 *    stage element and this ::after is already emptied with !important, so the
 *    2026-07-20 fix for the dangling "/" on a wrapped line still stands. */
@media (min-width: 768px) {
  .match-item__date .match-item__league-name { margin-right: 0; }
  .match-item__date .match-item__league-name::after {
    content: "/";
    margin-left: 5px;
  }
}

/* -------------------------------------------------------------------------
 * The sidebar's heading, when no match is live.
 *
 * "МАТЧИ NAVI" lived only inside the live block, so the column had a heading on
 * the days something was running and none on the days it was not (editor,
 * 2026-07-27). `upcomingSeries` now renders the same heading — same l10n key — and
 * this hides it whenever the live block is above, so it never prints twice.
 *
 * `:first-child` is the test rather than a flag on the server: the live block is
 * always rendered before the tabs when it exists, so "am I the first block in the
 * column" answers exactly the question, without either component learning about
 * the other. Both are constructor components and can be reordered by an editor;
 * if that ever happens this degrades to showing one heading in the wrong place,
 * not to showing two.
 * ------------------------------------------------------------------------- */
section.matches .nv-sidebar-head { display: none; }
section.matches > .matches__mobile:first-child > .nv-sidebar-head {
  display: flex;
  /* the heading's own box plus the canon's space below it — the same pair the news
     column uses, so the two columns start their content on the same line */
  margin: 0 0 var(--ds-sec-below);
}

/* ===== match-page.css ===== */
/* match-page.css — the match (series) page, editor brief item 6.
 *
 * WHAT / WHY (owner wireframe, docx "WS 2.0" image10, 2026-07-24)
 *   The page loses its duplicating hero banner and becomes, top to bottom:
 *   when + countdown → scoreboard → rosters → tournament card → head-to-head →
 *   other matches of the roster → read also. Blocks 5-7 are new.
 *
 * DELIVERY (append layer — same mechanism as match-redesign.css)
 *   Appended to the compiled public/css/app.min.css at deploy time, so it lands
 *   after app.min.css and wins the cascade. The deploy MUST recompute the md5 in
 *   public/mix-manifest.json or Cloudflare keeps serving the old stylesheet.
 *
 * SCOPING — READ BEFORE EDITING
 *   Everything hangs off `.nv-match` (added on the page's content-wrapper). The
 *   head-to-head and roster-matches lists deliberately reuse `.match-item` by
 *   wrapping in `.match-list-section`, which is what match-redesign.css already
 *   scopes its row skin to — the two lists inherit the approved card for free and
 *   this file adds nothing for them.
 */

/* ---- tokens — the same set match-redesign.css declares ------------------- */
.nv-match {
  --m-card-bg: #fff;
  --m-card-border: #E6E6E2;
  --m-radius: 10px;
  --m-cell-bg: #F0F0ED;
  --m-divider: #F0F0EC;
  --m-muted: #8F8F92;
  --m-muted-strong: #55555A;
  --m-live: #E03E36;
  --m-ink: #141414;
}

/* The blocks stack on one rhythm instead of each carrying its own margin. The
   tournament card ships a 60px bottom margin of its own, which would add to the
   gap and open a hole between it and the head-to-head block. */
.nv-match { display: flex; flex-direction: column; gap: 34px; }
.nv-match > section { margin: 0; }
.nv-match .tournament-card { margin-bottom: 0; }

/* =========================================================================
 * Section heading — uppercase label.
 *
 * The yellow bar this used to paint was retired site-wide on 2026-07-27, but the
 * retirement only reached `.main-title` — the component the design system and the
 * align.py guard both know about. The match page has its own heading element, so
 * "Состав команд", "Подробнее о турнире" and "Читайте также" kept theirs for another
 * day, and the editor found them (2026-07-28). Measured before removal: rgb(255,238,0),
 * 5x24px, on all three.
 *
 * `align.py --heads` called this page clean the whole time, because it scans
 * `.main-title` and nothing else. That gap is closed in the same change — the probe now
 * sweeps EVERY element for a painted bar, so a fourth heading component cannot hide.
 * ========================================================================= */
.nv-match__head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}
.nv-match__title {
  font-size: 21px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--m-ink);
}

/* =========================================================================
 * 1-2. The match header — one dark hero carrying when, countdown and the
 * scoreboard.
 *
 * SHAPE (owner review ×2, 2026-07-24)
 *   The first pass split this into two stacked white bands — date over a rule
 *   over the teams — and read as stretched: two rows of mostly air with no
 *   focal point. The fix was structural, not tonal: one compact block, the
 *   countdown promoted into the centre of the scoreboard (the slot a played
 *   match fills with its score), and the team blocks pulled in towards it so
 *   the slack falls on the outer edges instead of down the middle.
 *
 *   A dark treatment was tried and rejected by the owner — this stays light,
 *   in the same white-card language as every other block on the page. Depth
 *   comes from a faint warm gradient and a brand edge rather than from tone,
 *   because a flat white plane is what made the first version feel empty.
 * ========================================================================= */
.nv-mhead {
  position: relative;
  border: 1px solid var(--m-card-border);
  border-radius: var(--m-radius);
  overflow: hidden;
  background:
    radial-gradient(560px 150px at 50% 0%, rgba(255, 238, 0, .055), transparent 72%),
    linear-gradient(180deg, #fff 0%, #FBFBF9 100%);
}
/* the brand edge — the same signal the yellow bar gives section headings */
.nv-mhead::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--navi-yellow, #FFEE00);
}

/* --- meta bar ---
   The date used to sit alone in the top-left corner of a wide empty strip, which
   read as a stray label rather than part of the card. Centred and closed with a
   hairline, it becomes a header bar: one fact, clearly separated from the board
   below instead of floating above it. */
.nv-mhead__meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 13px 22px 12px;
  border-bottom: 1px solid var(--m-divider);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--m-muted);
}
.nv-mhead__date { font-variant-numeric: tabular-nums; color: var(--m-muted-strong); }
/* The stage sits beside the date, not under it: both are one line of context
   about the same match. The dot appears only when something precedes it, so a
   live match — which drops the date — opens with the stage itself. */
.nv-mhead__stage { color: var(--m-muted-strong); }
.nv-mhead__stage:not(:first-child)::before {
  content: "·";
  margin-right: 14px;
  color: var(--m-muted);
}
.nv-mhead--live .nv-mhead__meta { padding-bottom: 13px; }

/* --- board: team | hero slot | team --- */
.nv-mhead__board {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  padding: 22px 22px 26px;
}
.nv-mteam {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}
/* both sides hug the centre column, so the slack falls on the outer edges */
.nv-mteam { justify-content: flex-end; }
.nv-mteam--away { flex-direction: row-reverse; justify-content: flex-end; text-align: right; }
/* Bare on the light card. A tinted chip was tried: against a near-white surface
   it read as a smudge rather than an element, and it put a box around each mark
   that competed with the clock for the eye. */
.nv-mteam__logo {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 78px;
  height: 78px;
}
.nv-mteam__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.nv-mteam__info { min-width: 0; }
/* Wraps rather than truncates: "Karmine Corp" alone needed 152px of a 131px
   cell, and clipping a club's name is worse than a second line. */
.nv-mteam__name {
  font-size: 21px;
  font-weight: 700;
  line-height: 1.16;
  letter-spacing: .01em;
  color: var(--m-ink);
}
.nv-mteam__country {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 7px;
  font-size: 12.5px;
  /* the stronger muted grey (7.4:1), not --m-muted (3.1:1 on this card, below
     the 4.5 AA floor for text this size) — still clearly secondary to the name */
  color: var(--m-muted-strong);
}
.nv-mteam--away .nv-mteam__country { flex-direction: row-reverse; }
.nv-mteam__country img { width: 18px; height: 12px; flex: 0 0 auto; }

/* --- solo board: a battle royale has one participant, not two ---
   Keeping the three-column mirror left an empty third column, so the single team
   sat left of centre with the status pill floating beside it. Two auto columns
   centred as a pair reads as one object: who is playing, and what state it is in.
   The team stops hugging the centre here — with nothing opposite it, flex-end
   would push it against the pill. */
.nv-mhead__board--solo {
  grid-template-columns: auto auto;
  justify-content: center;
  gap: 28px;
}
.nv-mhead__board--solo .nv-mteam { justify-content: center; }

/* The format used to sit at the right end of the meta line, where it read as
   fine print. It belongs with the thing it describes, so it now sits under the
   clock / score in every state — which also leaves a live match's meta line
   empty, and a live match has no date to announce anyway. */
/* A chip rather than a fourth stacked text row: the centre column was reading
   as a pile of small type (caption, digits, unit labels, format). Given an
   outline it becomes one discrete object under the clock. */
.nv-mhead__format {
  display: inline-flex;
  align-items: center;
  padding: 4px 11px;
  border: 1px solid var(--m-control-border);
  border-radius: 5px;
  background: var(--m-card-bg);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--m-muted-strong);
}
/* The bar used to be hidden outright on a live match, back when the date was the
   only thing in it. Blade now decides what goes in — stage yes, date no — so
   hiding it here would kill the stage as well. */

/* --- the hero slot: one caption over one object --- */
/* A score is much narrower than a clock; without a floor the centre column
   collapses on finished matches and the teams crowd in, so the header would
   sit differently on two pages of the same kind. */
.nv-mhero {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 11px;
  min-width: 210px;
  padding: 0 10px;
}
.nv-mhero__caption {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  /* AA-readable on the light card — --m-muted is 3.1:1 here */
  color: var(--m-muted-strong);
}
.nv-mhero__caption--live {
  padding: 5px 11px;
  border-radius: 5px;
  background: var(--m-live);
  color: #fff;
  letter-spacing: .14em;
}
.nv-mhero__caption--live::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #fff;
  animation: nvLivePulse 1.4s ease-in-out infinite;
}

/* The countdown is ONE clock, not four chips: the colons bind the numbers into
   a single object, which is what the four separate tiles failed to do. */
.nv-clock {
  display: flex;
  align-items: flex-start;
  gap: 4px;
}
.nv-clock__u {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  min-width: 40px;
}
.nv-clock__v {
  font-size: 29px;
  font-weight: 700;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  letter-spacing: .01em;
  color: var(--m-ink);
}
.nv-clock__l {
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--m-muted);
}
.nv-clock__sep {
  font-size: 27px;
  font-weight: 700;
  line-height: 1.15;
  color: #CFCFC9;
}

/* the score fills the same slot once the match has been played */
.nv-mscore {
  display: flex;
  align-items: baseline;
  gap: 13px;
  font-size: 42px;
  font-weight: 700;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  color: var(--m-ink);
}
.nv-mscore__sep { font-size: 30px; color: #CFCFC9; }
/* A played match states its outcome in colour. Both pass AA on this card
   (4.63:1 and 4.86:1); the base sheet's live pair — #1cc052 / #f6341e — is drawn
   for the dark live block and the green measures 2.33:1 here, which fails even
   the 3:1 large-text bar. A live score stays ink: nobody has lost yet. */
.nv-mscore .is-winner { color: #0E8437; }
.nv-mscore .is-loser { color: #D42B22; }

/* =========================================================================
 * 3. Rosters. The wireframe asks for one row per team, the team on the left
 * and its players as cards. The old block put both teams in a grey slab with
 * the players floating loose; this gives each side its own row inside one
 * card, and NAVI's row carries a yellow edge so the eye lands on it first.
 * ========================================================================= */
.nv-roster {
  background: var(--m-card-bg);
  border: 1px solid var(--m-card-border);
  border-radius: var(--m-radius);
  overflow: hidden;
}
.nv-roster__row {
  display: grid;
  grid-template-columns: 158px minmax(0, 1fr);
  align-items: stretch;
}
.nv-roster__row + .nv-roster__row { border-top: 1px solid var(--m-divider); }
.nv-roster__team {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 20px 14px;
  background: #FAFAF8;
  border-right: 1px solid var(--m-divider);
  color: inherit;
  text-decoration: none;
}
.nv-roster__row--navi .nv-roster__team {
  box-shadow: inset 4px 0 0 var(--navi-yellow, #FFEE00);
}
.nv-roster__team-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
}
.nv-roster__team-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.nv-roster__team-name {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .02em;
  text-align: center;
  color: var(--m-ink);
}
.nv-roster__players {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 16px 18px;
}
/* The card SHRINKS rather than wraps (editor, 2026-07-30: "если уменьшать размер страницы
   матча, то игроки начинают отображаться в два ряда, что как-то не совсем логично").

   Measured: five 116px cards plus four 10px gaps need 620px, and the players area is 588px
   at an 820px viewport — so the fifth dropped onto its own row while a whole row's worth of
   space sat unused beside the other four. A roster is read as a line-up, and four-plus-one
   is not one.

   `flex: 1 1 96px` with `max-width: 116px`: the card never exceeds its design size, and five
   fit on one line down to 768px, where the mobile rule below deliberately takes over at
   three per row. The 96px is a FLOOR, not a fixed width, so a roster with more than five
   players still wraps — which is right. This only stops the wrap that had room not to. */
.nv-player {
  display: block;
  flex: 1 1 96px;
  min-width: 0;
  max-width: 116px;
  width: 116px;
  background: #fff;
  border: 1px solid var(--m-card-border);
  border-radius: 9px;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.nv-player__img {
  aspect-ratio: 1 / 1;
  background: var(--m-cell-bg);
}
.nv-player__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nv-player__meta {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 9px 10px;
  border-top: 1px solid var(--m-divider);
}
.nv-player__meta img { width: 17px; height: 12px; flex: 0 0 auto; border-radius: 2px; }
.nv-player__nick {
  font-size: 13px;
  font-weight: 700;
  color: var(--m-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* SIX-PLAYER LINE-UPS (editor, 2026-07-31: the sixth player was sitting alone on a second row).
   The 2026-07-30 fix above set the flex floor at 96px for a FIVE-man roster and deliberately
   left larger ones wrapping. Marvel Rivals is 6v6, so that case is real: 11 teams in the
   database field six, and measured on /match/s-2550 the players area is 620px beside the
   sidebar while six 116px cards plus five 10px gaps need 746px — the sixth dropped off with a
   whole row's worth of empty space beside it.

   Scoped to EXACTLY six (`:nth-child(6):last-child`), so the five-man design is untouched and
   the genuine outliers still wrap: seven cards would leave ~46px for a nickname, and 7/8/9-man
   squads are 7 teams in the whole database.

   The name row is tightened by the same rule, and that part is not cosmetic. At the 96.7px the
   cards settle to, the default 10px side padding leaves 51px for the nickname and an ordinary
   eight-character name (`Lv1Crook`, 56px) would ellipsize. 6px padding and a 5px gap give it
   59px, which keeps it whole. Verified 1440/1280/1180/1024/900/820: one row, nothing clipped.
   At exactly 768px six cards get 82.7px and the longest names do ellipsize — that band already
   clipped one name while wrapping, and mobile's three-per-row takes over 1px below it.

   `min-width: 768px` is required, not tidiness: this selector outranks the mobile block's
   `flex: 0 0 calc(...)` on specificity, so without the query it would drag six onto one line
   on a phone. */
@media (min-width: 768px) {
  .nv-roster__players:has(.nv-player:nth-child(6):last-child) { gap: 8px; }
  .nv-roster__players:has(.nv-player:nth-child(6):last-child) .nv-player { flex-basis: 72px; }
  .nv-roster__players:has(.nv-player:nth-child(6):last-child) .nv-player__meta {
    padding-left: 6px;
    padding-right: 6px;
    gap: 5px;
  }
}

/* …but not all the way down. Six across stops being a line-up and starts being a squeeze
   before the mobile breakpoint arrives (owner, 2026-07-31: "на 768 сделай 3+3").

   Measured on the same page, the name box against the 56px an eight-character nickname needs:
   768px → 46.7 · 780 → 48.7 · 800 → 52 · 820 → 55.3 · 840 → fits. So 840px is where six stop
   being cramped, and below it the mobile answer — three per row — is the better one. That is
   also continuous rather than a jump: three-per-row is exactly what this component already
   does one pixel below 768.

   `max-width: none` is what lets the three fill the row; without it they cap at 116px and
   leave a third of the row empty, which is the same orphan problem in a different shape.
   The name row goes back to its full padding here — the cards are ~173px wide in this band,
   so there is nothing to reclaim. */
@media (min-width: 768px) and (max-width: 839px) {
  .nv-roster__players:has(.nv-player:nth-child(6):last-child) .nv-player {
    flex: 0 0 calc((100% - 16px) / 3);
    max-width: none;
  }
  .nv-roster__players:has(.nv-player:nth-child(6):last-child) .nv-player__meta {
    padding-left: 10px;
    padding-right: 10px;
    gap: 7px;
  }
}

/* only NAVI players have somewhere to go, so only they get the affordance */
.has-hover a.nv-player:hover {
  transform: translateY(-2px);
  border-color: var(--navi-yellow, #FFEE00);
  box-shadow: 0 6px 18px rgba(20, 20, 20, .10);
}

/* =========================================================================
 * 5-6. Head-to-head and the roster's other matches. Both are plain
 * `.match-item` lists wrapped in `.match-list-section`, which is one of the
 * two hooks match-redesign.css scopes its row skin to — so the rows arrive
 * already styled and nothing here touches them beyond the list gap.
 * ========================================================================= */
.nv-match__list { display: flex; flex-direction: column; gap: 10px; }
/* Desktop shows the tournament in the right-hand cell, so the inline copy — the
   one the rows carry for mobile — is hidden here, and with it the `/` separator
   the base sheet parks after the timestamp. Left in, it has nothing to separate
   and reads as a typo. */
.nv-match__list .match-item__date > span::after { content: none; }
.nv-match__list .match-item__date .match-item__league-name,
.nv-match__list .match-item__date .match-item__league-stage { display: none; }

/* "показать ещё" — reveals the next five rows in place. Reads as one more card
   in the stack rather than a button dropped under it. */
.nv-match__more {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: 100%;
  height: 44px;
  margin-top: 10px;
  padding: 0;
  border: 1px solid var(--m-card-border);
  border-radius: var(--m-radius);
  background: var(--m-card-bg);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .03em;
  color: var(--m-ink);
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease;
}
.nv-match__more::after {
  content: "";
  width: 7px;
  height: 7px;
  margin-top: -4px;
  border-right: 2px solid var(--m-ink);
  border-bottom: 2px solid var(--m-ink);
  transform: rotate(45deg);
}
.has-hover .nv-match__more:hover { border-color: var(--navi-yellow, #FFEE00); background: #FFFEF4; }
.nv-match__more:focus-visible { outline: 2px solid var(--m-ink); outline-offset: 2px; }
/* rows past the visible window; the button drops out with the last batch */
.nv-match__list .match-item.is-hidden { display: none; }
.nv-match__more.is-done { display: none; }

/* =========================================================================
 * LIVE: the stream.
 *
 * The player is NOT ours — a script inside the frozen bundle finds
 * `.hronika-banner-block--simple-future`, fetches the casters and injects the
 * embed into `.hronika-banner-block__pubg-stream`. It also bails out entirely
 * unless a `.hronika-banner-block__pubg-timer` exists somewhere on the page.
 * So the banner element has to survive on upcoming and live pages even though
 * the brief removes the banner *design*: here it is stripped of its game art
 * and duplicated titles and reshaped into a plain 16:9 frame.
 *
 * The mount ships `position:absolute` and `:empty{display:none}` in the base
 * sheet. Making it `relative` with an aspect ratio keeps that empty rule
 * working, so a match with no stream collapses to nothing instead of leaving a
 * black rectangle — no :has(), no JS.
 * ========================================================================= */
.nv-match .nv-stream {
  display: block;
  width: 100%;
  min-height: 0;
  margin: 0;
}
.nv-match .nv-stream .hronika-banner-block__img,
.nv-match .nv-stream .hronika-banner-block__content { display: none; }
.nv-match .nv-stream .hronika-banner-block__pubg-stream {
  position: relative;
  aspect-ratio: 16 / 9;
  height: auto;
  border-radius: var(--m-radius);
  background: #0E0E11;
}
.nv-match .nv-stream .hronika-banner-block__pubg-stream > * { width: 100%; height: 100%; }
.nv-match .nv-stream .hronika-banner-block__pubg-stream iframe {
  display: block;
  width: 100%;
  height: 100%;
  max-height: none;
  border: 0;
}
/* the timer the bundle needs in order to run at all — our own clock renders it */
.nv-match .hronika-banner-block__pubg-timer { display: none; }

/* Caster / language switch, revealed by the same script once a stream exists.
   The base sheet builds it as one 374px dropdown for the selected language plus
   flag-only stubs for the rest (`.match-caster_active` carries order:-1 and a
   min-width; the others hide their label). That reads as a broken toolbar in the
   new language, so every language becomes an equal chip and the selected one
   takes the brand fill. The list of casters inside a language is styled further
   down — the base sheet leaves it a bare white rectangle. */
.nv-match .future-match-top__video-information--simple {
  width: auto;
  margin: 10px 0 0;
  padding: 0;
  background: none;
  justify-content: flex-start;
}
.nv-match .future-match-top__video-information-languages {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.nv-match .match-caster,
.nv-match .match-caster_active {
  order: 0;
  min-width: 0;
  margin: 0;
  border: none;
}
.nv-match .match-caster__btn,
.nv-match .match-caster_active .match-caster__btn,
.nv-match .match-caster:not(.match-caster_active) .match-caster__btn {
  width: auto;
  height: auto;
  gap: 8px;
  /* right padding clears the chevron the base sheet parks at right:10px — at
     13px it sat on top of the language name */
  padding: 8px 30px 8px 13px;
  justify-content: flex-start;
  border: 1px solid var(--m-control-border);
  border-radius: 7px;
  background: var(--m-card-bg);
  font-size: 12.5px;
  font-weight: 700;
  color: var(--m-muted-strong);
  cursor: pointer;
}
.nv-match .match-caster__btn > div { display: flex; align-items: center; gap: 8px; }
.nv-match .match-caster__btn-flag,
.nv-match .match-caster_active .match-caster__btn img {
  width: 18px;
  height: 12px;
  margin-right: 0;
}
/* every language shows its name, not just the selected one */
.nv-match .match-caster:not(.match-caster_active) .match-caster__btn .match-caster__btn-text { display: inline; }
.nv-match .match-caster__btn-caster { font-weight: 400; color: var(--m-muted); }
.nv-match .match-caster_active .match-caster__btn {
  border-color: var(--navi-yellow, #FFEE00);
  background: var(--navi-yellow, #FFEE00);
  color: var(--m-ink);
}
.nv-match .match-caster_active .match-caster__btn-caster { color: rgba(20, 20, 20, .62); }

/* --- the caster list ---
   The base sheet gives it nothing but `position:absolute; background:#fff`, so it
   opened as a bare white rectangle: square corners, no edge, no shadow, rows of
   14px text touching the left edge, floating 11px under the control because the
   chip's flex row stretches taller than the button and the panel hangs off the
   row's bottom. `align-self` collapses the chip to the button, and the panel then
   becomes the same white card the rest of the page is made of.
   Visibility stays the bundle's: it toggles `.active` on this element. */
.nv-match .match-caster { align-self: flex-start; }
.nv-match .match-caster__items {
  min-width: 100%;
  margin-top: 6px;
  padding: 5px;
  border: 1px solid var(--m-control-border);
  border-radius: 9px;
  background: var(--m-card-bg);
  box-shadow: 0 14px 30px rgba(20, 20, 24, .16);
  /* a short rise on open, in the same restrained register as the rest of the page.
     The base rule transitions opacity only, so it is restated with transform. */
  transform: translateY(-5px);
  transition: opacity .25s ease, transform .25s ease;
}
.nv-match .match-caster__items.active { transform: none; }
.nv-match .match-caster__item {
  display: flex;
  align-items: center;
  padding: 7px 10px;
  border-radius: 6px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--m-muted-strong);
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}
.nv-match .match-caster__item:hover { background: var(--m-cell-bg); color: var(--m-ink); }
.nv-match .match-caster__item-wrapp { display: flex; align-items: center; gap: 8px; }
/* the bundle puts the same class on the flag image AND on the channel name, so
   these two have to be told apart by element, not by class */
.nv-match img.match-caster__item-flag { width: 18px; height: 12px; flex: 0 0 auto; }
.nv-match span.match-caster__item-flag { font-weight: 700; }

/* =========================================================================
 * 7. Read also. Deliberately NOT a new component: the publication page already
 * ships `.related-news` / `.related-news__grid` (navi-overrides.css, live), which
 * turns the overlay-style `.news-item` into a plain vertical card, three across
 * on desktop and 2x2 on mobile. Reusing that scope means this block looks
 * identical to the one readers already know and this file adds nothing but the
 * margin reset — the flex gap above owns the spacing here.
 * ========================================================================= */
.nv-match .related-news { margin: 0; }
.nv-match .related-news__grid { margin-top: 0; }

/* These cards must carry `news-item--no-cut` or the frozen bundle throws on their
   missing description and takes the rest of the page's init down with it — see the
   comment in nv_related.blade.php. The class exists for banners, which sit in a
   swiper and are meant to be inert, so it also cancels the component's hover lift
   with !important. Re-asserted for this scope only; the margin resets it carries
   are already no-ops here, since the grid spaces the cards with `gap`.
   Values measured off the unmodified component, not invented. */
.has-hover .nv-match .related-news .news-item--no-cut:hover {
  box-shadow: 0 10px 15px 0 rgba(145, 145, 145, .16) !important;
  transform: translateY(-2px) !important;
}

/* --- editor round, 2026-07-28 -------------------------------------------------------
   Three notes on this block, all of them about the meta line and its date.

   SCOPE. `.related-news` is the publication page's component and this match block reuses
   it, so everything here is held under `.nv-match` — the editor's screenshots and links
   are match pages, and silently restyling the publication page is not what was asked.
   If the two should match, lifting the `.nv-match` prefix is the whole change.

   1. THE SEPARATOR WAS OFF-CENTRE. The base draws it as `content: " / "` on
      `.news-item__info-name::after` — a slash with a space each side — but the row is
      `display: block`, so the newline between the name and the type in the template
      collapses to a THIRD space and lands on the right of the slash only. The eye reads
      the gap as lopsided, which is exactly what was circled. A flex row drops
      inter-element whitespace entirely, so the slash can then carry equal margins and be
      genuinely centred rather than centred-looking. The type's own trailing " / " goes:
      it was only ever hidden by the date being lifted out of the flow.

   2. THE MARK JOINS THE ROW. The template now emits `.news-item__info-badge` in front of
      the name instead of an absolute icon on the artwork; this is the tile it sits in,
      the same 24px `--ds-cell` plate the home list uses.

   3. THE DATE DROPS. It is `position: absolute` at `bottom: 20px`, which put it 3px under
      the headline's box — measured, title bottom 1746 against date top 1743 — and the two
      read as crowded. One step down the spacing scale gives the headline its air back. */
.nv-match .related-news .news-item__info {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.nv-match .related-news .news-item__info-name::after {
  content: "/";
  margin: 0 var(--ds-s-2);
  color: var(--ds-line-strong);
}
.nv-match .related-news .news-item__info-type::after { content: none; }

.nv-match .related-news .news-item__info-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  margin-right: var(--ds-s-2);
  padding: 4px;
  border-radius: var(--ds-r-sm);
  background: var(--ds-cell);
}
.nv-match .related-news .news-item__info-badge .news-item__icon {
  position: static;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain;
}

/* The date is pinned to the card's foot, so "move it down" is a smaller bottom offset
   (editor, 2026-07-29: "где читайте также, я бы немного вниз сместил даты со временем").
   Measured before: 5px under a two-line title and 12px above the card's edge, which is
   why it read as stuck to the headline. At 8px it sits 9px under the title and 8px above
   the foot — the same air on both sides, and a 4px move is the "немного" that was asked
   for. One-line titles are unaffected: the date is absolute, not in the flow.

   SCOPE, 2026-07-31: the `.nv-match` prefix is gone, exactly as the note above this block
   predicted — the editor came back with the publication page's copy of this component
   ("блок читайте также на странице новостей... на странице турниров он выглядит
   правильно"), which is the same markup drawn from the same `.related-news` scope. It was
   worse there than the match page ever was: at the base's 20px the date OVERLAPPED a
   two-line headline by 3px, measured at both 1440 and 390. One component, one rule. */
.related-news .news-item__info-date { bottom: var(--ds-s-2); }

/* =========================================================================
 * Mobile.
 * ========================================================================= */
@media only screen and (max-width: 767px) {
  .nv-match { gap: 26px; }
  .nv-match__title { font-size: 16px; }

  /* The lists start right under their heading, the way every other block on this page
     does (editor, 2026-07-31: "матчи в истории матчей хочется поднять выше к заголовку,
     там слишком большая серая область").

     `.match-list-section{padding-top:60px}` is the base bundle's, and only below 768px —
     measured, heading bottom to first row: 14px at 1440, **74px at 390**, against 14px for
     the rosters and the tournament card on the same page at the same width. That padding
     is the section's own top spacing on the pages where the heading sits INSIDE the block
     (/matches, the tournament match lists); our markup puts the heading above it as a
     sibling, so here it is spacing that has already been paid. Scoped to `.nv-match` for
     exactly that reason. */
  .nv-match .match-list-section { padding-top: 0; }

  /* The hero drops from three columns to two tiers: both teams share the first
     row, the clock takes the second across the full width. Squeezing all three
     into one row at 390px staggered them — each column has a different height,
     so centring them put the caption beside the team names instead of over the
     clock. Two tiers also let the clock stay large, which is the point of it. */
  .nv-mhead__meta { padding: 14px 14px 0; font-size: 10.5px; letter-spacing: .07em; }
  .nv-mhead__board {
    grid-template-columns: 1fr 1fr;
    align-items: start;
    gap: 15px 10px;
    padding: 14px 14px 18px;
  }
  .nv-mteam { grid-column: 1; grid-row: 1; }
  .nv-mteam--away { grid-column: 2; grid-row: 1; }
  /* one participant, so the first tier is one full-width cell instead of a pair */
  .nv-mhead__board--solo { grid-template-columns: 1fr; }
  /* children are [info, logo]; reversing the column puts the chip on top */
  .nv-mteam,
  .nv-mteam--away {
    flex-direction: column-reverse;
    justify-content: flex-end;
    gap: 9px;
    text-align: center;
  }
  .nv-mteam__logo { width: 56px; height: 56px; }
  .nv-mteam__name { font-size: 15px; }
  .nv-mteam__country,
  .nv-mteam--away .nv-mteam__country { flex-direction: row; justify-content: center; margin-top: 5px; font-size: 11px; }

  .nv-mhero {
    grid-column: 1 / -1;
    grid-row: 2;
    gap: 8px;
    width: 100%;
    min-width: 0;
    padding: 14px 0 0;
    border-top: 1px solid var(--m-divider);
  }
  .nv-mhero__caption { font-size: 9px; letter-spacing: .1em; }
  .nv-clock { gap: 3px; }
  .nv-clock__u { min-width: 44px; gap: 4px; }
  .nv-clock__v { font-size: 25px; }
  .nv-clock__l { font-size: 8px; letter-spacing: .07em; }
  .nv-clock__sep { font-size: 20px; }
  .nv-mscore { font-size: 32px; gap: 10px; }
  .nv-mscore__sep { font-size: 23px; }

  /* Lists: the same row the home sidebar and /matches use on a phone — the
     timestamp on its own line, tournament and stage muted underneath, teams
     last. The owner asked for one row design across the three surfaces, and
     these rules mirror `section.matches` rather than inventing a fourth. */
  .nv-match__list .match-item__date .match-item__league-name,
  .nv-match__list .match-item__date .match-item__league-stage {
    display: inline;
    font-size: 11.5px;
    font-weight: 400;
    letter-spacing: 0;
    color: var(--m-muted);
  }
  .nv-match__list .match-item__date > span::after { content: " / "; }
  .nv-match__list .match-item__date > [data-timezone] { flex: 0 0 100%; }
  .nv-match__list .match-item__date > [data-timezone]::after { content: none; }

  .nv-match__more { height: 42px; font-size: 12.5px; }

  /* the team cell becomes a header strip above its players */
  .nv-roster__row { grid-template-columns: minmax(0, 1fr); }
  .nv-roster__team {
    flex-direction: row;
    justify-content: flex-start;
    gap: 12px;
    padding: 12px 14px;
    border-right: none;
    border-bottom: 1px solid var(--m-divider);
  }
  .nv-roster__team-logo { width: 34px; height: 34px; }
  .nv-roster__players { gap: 8px; padding: 12px 14px; }
  /* three per row here is the design, so the basis is pinned rather than flexible —
     without restating `flex` the desktop `1 1 96px` would keep pulling them onto one line */
  .nv-player { flex: 0 0 calc((100% - 16px) / 3); max-width: none; width: calc((100% - 16px) / 3); }
  .nv-player__nick { font-size: 12px; }
  .nv-player__meta { gap: 5px; padding: 7px 8px; }

  .nv-also__grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .nv-player { transition: none; }
  .nv-mhead__status--live::before { animation: none; }
  /* the panel still fades, it just stops travelling */
  .nv-match .match-caster__items { transform: none; transition: opacity .25s ease; }
}

/* =========================================================================
 * The two related lists carry `.tournament-matches` alongside `.nv-match__list`
 * (see nv_related.blade.php).
 *
 * WHY. The base sheet styles `.match-item` mobile-first — `.match-item__date`
 * gets `margin-bottom: 14px` and no vertical centring — and undoes that for
 * desktop only under `.tournament-matches`:
 *
 *   @media (min-width: 768px) {
 *     .tournament-matches .match-item .match-item__date {
 *       align-items: center; min-width: 130px; margin-bottom: 0;
 *     }
 *   }
 *
 * `/matches` carries that class, so the approved row is 68px tall with its date
 * cell centred. Wrapping in `.match-list-section` alone was not enough: without
 * the class the mobile rules leaked into the desktop view and the rows rendered
 * 96px tall with the date sitting high in its cell. Measured before/after:
 * 96px → 68px, date margin 14px → 0, align normal → center, date column
 * 0 → 158px — identical to `/matches` on every property.
 *
 * WHAT THIS UNDOES. Below 768px that same class also applies rules written for
 * the standalone tournament-matches page: 60px of block padding and a
 * full-bleed white backdrop (`::before`, `calc(100% + 32px)` wide). Inside the
 * match page both are wrong — they added 120px of empty space to each list on a
 * phone. Switched off here rather than by dropping the class, because the
 * desktop corrections above are exactly what makes the rows match the approved
 * surface.
 * ========================================================================= */
@media (max-width: 767px) {
  .nv-match__list.tournament-matches {
    padding: 0;
    background-color: transparent;
  }
  .nv-match__list.tournament-matches::before { content: none; }
}

/* "В составах команд ники игроков сделать по центру фотографий (так и было), а не
   по левому краю" (owner, 2026-07-26). The flag+nick pair is one group under the
   photo, so it centres as a group rather than hugging the left edge. */
.nv-player__meta { justify-content: center; }

/* "На странице матча в лайве будто бы не хватает отступа между верхней панелькой
   сайта и стримом" (editor, 2026-07-26). The live state opens with the player, and
   the page's content wrapper starts flush against the header — every other state
   opens with a card that carries its own top margin. */
.nv-match .nv-stream { margin-top: var(--ds-s-6); }

/* -------------------------------------------------------------------------
 * The head sat flush against the block above it on a finished match.
 *
 * Owner, 2026-07-27: "конкретно в прошедших матчах эта штука прилипает к
 * верхнему бордеру, в предстоящих все норм". Measured: on an upcoming match the
 * head starts 54px below the banner; on a finished one, 0.
 *
 * Nothing about the head changes between the two — what changes is what is above
 * it. An upcoming match renders a countdown block and a banner slot that are
 * `display:none` but still carry 30px and 10px of top margin; those collapse into
 * the space above the head and stand in for a rule nobody wrote. A finished match
 * renders neither, so the head becomes the wrapper's first child and there is no
 * margin left to inherit the spacing from.
 *
 * The wrapper is a flex column with a 34px gap, so those hidden blocks are real
 * flex items and the gaps around them are what produced the 54px. Scoping the rule
 * to `:first-child` puts the spacing exactly where it is missing and nowhere else:
 * the upcoming page keeps the gaps it already has and does not move, and no
 * arithmetic has to agree between the two paths. 54 is the number the upcoming page
 * already had — the one the owner called correct — not a new choice.
 * ------------------------------------------------------------------------- */
.content-wrapper.nv-match > .nv-mhead:first-child { margin-top: 54px; }

/* =========================================================================
 * 8. The Abios blocks — details, statistics, rosters, history (2026-07-28)
 *
 * Owner: "и состав кривой, и сама статистика Abios в старых стилях... match details
 * and match history тоже не в новых стилях".
 *
 * Fair, and precise. The `over` port brought the page SHELL to the redesign — the match
 * head and the tournament-card section — but the three Abios-only blocks were only MOVED,
 * never restyled, so the page read as half-converted: a redesigned header above a 2019
 * statistics table.
 *
 * Nothing here invents a new language. Every value is a token already in use elsewhere on
 * this page: the card is the `--ds-card` + `--ds-line` surface every other block uses, the
 * tab tracks are the sidebar's UPCOMING/PAST pattern, and the column labels are the same
 * 11.5px/700 uppercase micro type the news meta and the match rows carry.
 *
 * Corners are deliberately not set: sharp.css zeroes radius site-wide while that trial runs,
 * and restating a radius here would fight it.
 * ========================================================================= */

/* --- the page's own tabs: MATCH DETAILS / MATCH HISTORY ------------------------------
   Only the type and the rule are restated. The ACTIVE tab carries no class of its own —
   the bundle marks it another way — so colour and the active underline are left exactly
   as they are rather than guessed at and flattened. */
.nv-match .match-tabs {
  display: flex;
  gap: var(--ds-s-7);
  border-bottom: 1px solid var(--ds-line);
  margin-bottom: var(--ds-s-7);
}
.nv-match .match-tab {
  padding: 0 0 var(--ds-s-4);
  font-size: var(--ds-t-micro);
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  cursor: pointer;
}

/* --- MATCH STATISTICS: the heading joins the site's one heading component ------------- */
.nv-match .details-match__title {
  font-size: var(--ds-sec-size);
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ds-ink);
  margin-bottom: var(--ds-sec-below);
}

/* --- the statistics table becomes a card, like every other block on this page --------- */
.nv-match .details-match__container {
  background: var(--ds-card);
  border: 1px solid var(--ds-line);
  overflow: hidden;
}
.nv-match .details-match__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ds-s-5);
  flex-wrap: wrap;
  padding: var(--ds-s-5) var(--ds-s-6);
  border-bottom: 1px solid var(--ds-line);
}

/* Map picker and side picker: one pattern, the track the sidebar's UPCOMING/PAST uses —
   a `--ds-cell` groove with the selected cell lifted onto the card surface. */
.nv-match .details-match__controls,
.nv-match .details-match__sides-wrapp {
  display: inline-flex;
  gap: 2px;
  padding: 2px;
  background: var(--ds-cell);
}
.nv-match .details-match__control,
.nv-match .details-match__side {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 54px;
  padding: 7px var(--ds-s-4);
  background: none;
  font-size: var(--ds-t-micro);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ds-ink-3);
  cursor: pointer;
  transition: color var(--ds-d-micro, .12s) ease, background-color var(--ds-d-micro, .12s) ease;
}
.has-hover .nv-match .details-match__control:hover,
.has-hover .nv-match .details-match__side:hover { color: var(--ds-ink); }
.nv-match .details-match__control--active,
.nv-match .details-match__side--active {
  background: var(--ds-card);
  color: var(--ds-ink);
  box-shadow: var(--ds-sh-1);
}
/* the "Sides" caption in front of the track */
.nv-match .details-match__sides {
  display: inline-flex;
  align-items: center;
  gap: var(--ds-s-4);
  font-size: var(--ds-t-micro);
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ds-ink-3);
}

/* --- the team column and the player rows --------------------------------------------- */
.nv-match .details-match__team {
  border-right: 1px solid var(--ds-line);
}
.nv-match .details-match__team-name {
  font-size: var(--ds-t-strong);
  font-weight: 700;
  color: var(--ds-ink);
}
.nv-match .details-match__team-country {
  font-size: var(--ds-t-small);
  color: var(--ds-ink-3);
}

/* The column header row is a label row, not data: same micro type as every other one. */
.nv-match .details-match__labels {
  border-bottom: 1px solid var(--ds-line);
}
.nv-match .details-match__label {
  font-size: var(--ds-t-micro);
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ds-ink-3);
}

/* Rows separate with a hairline instead of alternating fills — the same way the match list
   and the news rows separate, so a visitor moving between them reads one table language. */
.nv-match .details-match__player {
  background: none;
  border-top: 1px solid var(--ds-line);
}
.nv-match .details-match__players > .details-match__player:first-child { border-top: 0; }
.has-hover .nv-match .details-match__player:hover { background: var(--ds-cell); }
.nv-match .details-match__player-name {
  font-size: var(--ds-t-body);
  color: var(--ds-ink);
}
/* Figures line up column to column only with tabular figures — this table is nothing but
   figures, and proportional digits were letting the K-D column wander row to row. */
.nv-match .details-match__player-stat {
  font-variant-numeric: tabular-nums;
  font-size: var(--ds-t-body);
  /* NO colour here. The first pass set `--ds-ink-2` and flattened the +/- column to grey —
     the green and red on that column are the only thing that says at a glance who was up
     and who was down, and a restyle that removes meaning is not a restyle. Whatever the
     component paints per value survives. */
}

/* The Abios plate is deliberately NOT restyled. It was toned to `--ds-cell` here and the
   owner called the result ugly — fair: it is a vendor attribution with its own brand
   colour, and muting it into our greys made it look broken rather than quiet. Left
   exactly as the component ships it. */

/* --- rosters and the head-to-head history get the same card ------------------------- */
.nv-match .team-composition,
.nv-match .match-history-block {
  background: var(--ds-card);
  border: 1px solid var(--ds-line);
}

/* =========================================================================
 * 9. Maps and match statistics, to the owner's reference (2026-07-29)
 *
 * Reference: "NAVI - Карты и статистика матча.html". Brief: "переделай в такой же стиль
 * просто с нашими шрифтами". Measured off the mock rather than eyeballed — and it turned
 * out to be built on our own tokens already: #141414 is --ds-ink, #8F8F92 is --ds-ink-3,
 * and its red #E03E36 is --ds-live exactly. Only the green differed (#1C9E4F against our
 * --ds-win #1F8A4C); ours is used, because one green site-wide beats matching a mock to
 * the last digit. Its Barlow / Barlow Condensed are replaced by the site's own family,
 * which is what "с нашими шрифтами" asks for.
 *
 * Corners stay unset — sharp.css zeroes radius site-wide while that trial runs.
 * ========================================================================= */

/* --- 1. Score by map ------------------------------------------------------------------
   One card, one row per played map: artwork with the map's number and name burned over it,
   then the two sides around a large score, with the half-scores under it as chips. */
.nv-match .match-info__items {
  background: var(--ds-card);
  border: 1px solid var(--ds-line);
  overflow: hidden;
}
.nv-match .match-info__item {
  position: relative;
  display: grid;
  grid-template-columns: 208px minmax(0, 1fr);
  align-items: stretch;
  border-top: 1px solid var(--ds-line);
}
.nv-match .match-info__items > .match-info__item:first-child { border-top: 0; }
/* The map the home side took. The reference marks it with a brand edge rather than a
   tint — a filled row would compete with the score, which is the thing being read. */
.nv-match .match-info__item--home-won::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 4px;
  background: var(--ds-yellow, #FFEE00);
  z-index: 2;
}

.nv-match .match-info__item-img {
  position: relative;
  min-height: 96px;
  overflow: hidden;
  background: var(--ds-bg-dark, #141414);
}
.nv-match .match-info__item-img .picture,
.nv-match .match-info__item-img .picture__wrapper,
.nv-match .match-info__item-img .picture__img { height: 100%; }
.nv-match .match-info__item-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* Type sits ON the artwork, so it needs its own contrast, not the photograph's luck. */
/* z-index is not decoration here: `.picture` inside is positioned, so without it the
   artwork paints OVER this scrim and the white labels land on a bright photograph —
   which is exactly how the first pass rendered, invisible. */
.nv-match .match-info__item-img::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(20, 20, 24, .55) 0%, rgba(20, 20, 24, .12) 45%, rgba(20, 20, 24, .72) 100%);
}
/* `right` and `transform` are reset, not just `left` overridden: the base centres this
   label, and a centred label wider than its box overflows BOTH ways — which is why the
   first pass rendered "UST2" and "FERNO", clipped at the card's edge. */
.nv-match .match-info__item-index,
.nv-match .match-info__item-mapname {
  position: absolute;
  left: 14px;
  right: auto;
  transform: none;
  text-align: left;
  max-width: calc(100% - 28px);
  z-index: 2;
  color: #fff;
  font-weight: 700;
}
.nv-match .match-info__item-index {
  top: 12px;
  font-size: 10.5px;
  letter-spacing: .2em;
  text-transform: uppercase;
  opacity: .82;
}
.nv-match .match-info__item-mapname {
  bottom: 12px;
  font-size: 19px;
  letter-spacing: .04em;
  text-transform: uppercase;
}

/* the row body: side | score | side, the score holding the middle */
.nv-match .match-info__item-wrapp {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: var(--ds-s-6);
  padding: var(--ds-s-5) var(--ds-s-7);
}
.nv-match .match-info__item-opponent {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ds-s-4);
  min-width: 0;
}
.nv-match .match-info__item-opponent.reverse {
  flex-direction: row-reverse;
  justify-content: flex-end;
}
.nv-match .match-info__item-title {
  font-size: var(--ds-t-strong);
  font-weight: 700;
  color: var(--ds-ink);
  white-space: nowrap;
}
.nv-match .match-info__item-icon {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
}
.nv-match .match-info__item-icon img { max-width: 100%; max-height: 100%; object-fit: contain; }

.nv-match .match-info__item-score {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
/* Type and colour only. The base already lays this row out correctly — the first pass
   added a flex row and its own colon on top of it and produced two colons on two lines.
   A restyle that re-does working layout is how that happens. */
.nv-match .info-item-result {
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.nv-match .info-item-result__item.winner { color: var(--ds-win); }
.nv-match .info-item-result__item.loser { color: var(--ds-live); }

/* Half-scores as chips, the reference's own treatment: a run of bare numbers reads as one
   string, boxed pairs read as halves. The base wraps the run in brackets and separates it
   with semicolons — punctuation doing the job the boxes now do, so it goes. */
.nv-match .info-item-rounds {
  display: flex;
  align-items: center;
  justify-content: center;
  /* one row, as in the reference: wrapped, three halves stacked into a column and pushed
     the row's height past the artwork's */
  flex-wrap: nowrap;
  gap: 5px;
  font-size: 11px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.nv-match .info-item-rounds::before,
.nv-match .info-item-rounds::after,
.nv-match .info-item-round::before,
.nv-match .info-item-round::after { content: none; }
.nv-match .info-item-round {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px 6px;
  border: 1px solid var(--ds-line);
}
/* No separator is added here — the base already draws one between the two halves, and
   adding a second produced "7 : : 5". */
.nv-match .info-item-round__score.winner { color: var(--ds-win); }
.nv-match .info-item-round__score.loser { color: var(--ds-live); }

@media only screen and (max-width: 767px) {
  .nv-match .match-info__item { grid-template-columns: 1fr; }
  .nv-match .match-info__item-img { min-height: 120px; }
  .nv-match .match-info__item-wrapp { padding: var(--ds-s-5); gap: var(--ds-s-4); }
  .nv-match .info-item-result { font-size: 26px; }
  .nv-match .match-info__item-title { font-size: var(--ds-t-body); }
}

/* --- 2. Match statistics, to the same reference ---------------------------------------
   The table itself is rendered by the frozen Vue bundle, so this is CSS over markup we do
   not own. Everything below is reachable that way; the two things that are not — the
   per-row ADR bar and the scope label — are noted at the end rather than faked. */

.nv-match .details-match__header {
  padding: var(--ds-s-5) var(--ds-s-6);
}
/* The map picker is a bordered track in the reference, not a filled groove: on a white
   card an outline reads as a control while a grey fill reads as a disabled area. */
.nv-match .details-match__controls,
.nv-match .details-match__sides-wrapp {
  gap: 0;
  padding: 0;
  background: none;
  border: 1px solid var(--ds-line);
}
.nv-match .details-match__control,
.nv-match .details-match__side {
  padding: 9px var(--ds-s-6);
  border-right: 1px solid var(--ds-line);
  font-size: 13px;
  letter-spacing: .14em;
  box-shadow: none;
}
.nv-match .details-match__controls > .details-match__control:last-child,
.nv-match .details-match__sides-wrapp > .details-match__side:last-child { border-right: 0; }
/* the selected cell is the one on the card's own surface, boxed by the track's edge */
.nv-match .details-match__control--active,
.nv-match .details-match__side--active {
  background: var(--ds-card);
  color: var(--ds-ink);
  box-shadow: inset 0 0 0 1px var(--ds-ink);
}

/* --- the team band that opens each half of the table --- */
.nv-match .details-match__team-wrapp {
  display: flex;
  align-items: center;
  gap: var(--ds-s-4);
  padding: var(--ds-s-5) var(--ds-s-6);
}
.nv-match .details-match__team-icon {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 4px;
  border: 1px solid var(--ds-line);
}
.nv-match .details-match__team-icon img { max-width: 100%; max-height: 100%; object-fit: contain; }
.nv-match .details-match__team-name {
  font-size: 15.5px;
  letter-spacing: .02em;
}
/* a hairline between the club and where it plays, the reference's own divider */
.nv-match .details-match__team-country {
  display: flex;
  align-items: center;
  gap: var(--ds-s-3);
  padding-left: var(--ds-s-4);
  border-left: 1px solid var(--ds-line);
  font-size: 13px;
  font-weight: 600;
}

/* --- column labels and rows ---
   One grid for the header and the rows, so a column edge is a straight line down the
   whole table rather than four separate guesses. */
.nv-match .details-match__labels,
.nv-match .details-match__player {
  align-items: center;
}
.nv-match .details-match__labels {
  padding: var(--ds-s-4) var(--ds-s-6);
  border-top: 1px solid var(--ds-line);
  background: none;
}
.nv-match .details-match__label {
  letter-spacing: .22em;
  color: #A8A8AB;
}
.nv-match .details-match__player {
  padding: var(--ds-s-5) var(--ds-s-6);
}
.nv-match .details-match__player-name {
  font-size: var(--ds-t-body);
  letter-spacing: .01em;
}
/* Figures carry the weight here — the name is the label, the numbers are the content. */
.nv-match .details-match__player-stat {
  font-size: 15px;
  font-weight: 600;
}
/* the +/- column is the one with a sign, so it is the one that gets colour */
.nv-match .details-match__player-stat--green { color: var(--ds-win); font-weight: 700; }
.nv-match .details-match__player-stat--red { color: var(--ds-live); font-weight: 700; }

/* Vertical rules between the figure columns. The reference draws them; without them a
   five-column table of bare numbers reads as one drifting field. */
.nv-match .details-match__labels > .details-match__label:not(:first-child),
.nv-match .details-match__player > .details-match__player-stat {
  border-left: 1px solid var(--ds-line);
}

/* --- 3. Statistics: the reference's actual STRUCTURE, not just its skin (2026-07-29) ---
   Owner: "блок статистики совсем не тот, какой в референсе". Correct, and the previous
   pass had accepted a constraint that was not real: it restyled the type and left the
   layout alone, so the team stayed in a 216px column down the LEFT while the reference
   puts it in a band ACROSS THE TOP of its own half of the table.

   The bundle renders `.details-match__team` as a flex ROW of [team identity | table].
   Turning that row into a column is the whole structural change — the band goes on top at
   full width, the table sits under it, and no markup has to be touched. */
.nv-match .details-match__team {
  flex-direction: column;
  align-items: stretch;
  border-right: 0;
}
.nv-match .details-match__team + .details-match__team {
  border-top: 1px solid var(--ds-line);
}
/* `flex: none` as well as the width: the wrapp keeps a flex-basis from its old life as a
   216px column, and without it the band's rule stopped short of the card's edge. */
.nv-match .details-match__team-wrapp {
  flex: none;
  width: 100%;
  max-width: none;
  border-bottom: 1px solid var(--ds-line);
  background: var(--ds-card);
}
.nv-match .details-match__players-wrapp { width: 100%; }

/* The band reads left to right — mark, club, where it plays — so the identity is one line
   rather than a stack, which is what the vertical column had made of it. */
.nv-match .details-match__team-wrapp {
  flex-direction: row;
  justify-content: flex-start;
  text-align: left;
}
.nv-match .details-match__team-icon { margin: 0; }

/* --- the sorted column, without a line of JS ---
   The bundle puts a sort icon inside the ACTIVE column's label and nowhere else, so `:has`
   can find which column is sorted and `+` can reach the rows, because the labels row and
   the players row are siblings. Five columns, five pairs — verbose, but it tracks the real
   sort state instead of assuming the default one, and a browser without `:has` simply
   shows no highlight. */
.nv-match .details-match__labels .details-match__label:has(svg) {
  color: var(--ds-ink);
  box-shadow: inset 0 -2px 0 0 var(--ds-yellow, #FFEE00);
}
.nv-match .details-match__labels:has(.details-match__label:nth-child(2) svg) + .details-match__players .details-match__player > :nth-child(2),
.nv-match .details-match__labels:has(.details-match__label:nth-child(3) svg) + .details-match__players .details-match__player > :nth-child(3),
.nv-match .details-match__labels:has(.details-match__label:nth-child(4) svg) + .details-match__players .details-match__player > :nth-child(4),
.nv-match .details-match__labels:has(.details-match__label:nth-child(5) svg) + .details-match__players .details-match__player > :nth-child(5) {
  background: rgba(255, 238, 0, .10);
}

/* The scope of the figures below, on the right of the band — which map and which side the
   table is currently showing. The bundle does not render it; nvStatScope injects it and
   keeps it in step with the two filters. */
.nv-match .nv-stat-scope {
  margin-left: auto;
  font-size: var(--ds-t-micro);
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #A8A8AB;
  white-space: nowrap;
}

/* ADR gets a bar under its number: five bare three-digit figures give no sense of scale,
   and comparing damage across a roster is the whole reason the column is there. The width
   comes from `--adr`, set per cell by nvStatAdrBars against the highest value in that
   table, so the longest bar is always the top damage of that team. */
.nv-match .details-match__player-stat[style*="--adr"] {
  position: relative;
  padding-bottom: 9px;
}
.nv-match .details-match__player-stat[style*="--adr"]::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 2px;
  width: 46px;
  height: 2px;
  transform: translateX(-50%);
  background: var(--ds-line);
}
.nv-match .details-match__player-stat[style*="--adr"]::before {
  content: "";
  position: absolute;
  left: calc(50% - 23px);
  bottom: 2px;
  z-index: 1;
  width: calc(46px * var(--adr));
  height: 2px;
  background: var(--ds-ink-3);
}

/* --- 4. Statistics measured against the mock, not eyeballed (2026-07-29) --------------
   Owner, twice: "совсем не тот... всё криво по выравниванию, столбик с подсветкой криво".
   Both times I had compared screenshots by eye. Measured instead, with one probe reading
   the same features off the mock and off preview, and normalised — the mock's card is
   1238px wide, ours is 816, so only proportions can be compared:

                        mock            ours (before)
     PLAYER column      61.9%           57.1%
     row side padding   0 — columns run to the card's edge      20px
     header highlight   rgba(255,229,0,.13) on the label cell   none, only an underline
     team name          22px            15.5px
     logo tile          36px            34px
     band height        57px            67px

   The padding is what made the highlight look crooked: the tinted column stopped 20px
   short of the card's edge while every rule above it ran to it. In the mock the rows have
   NO horizontal padding at all — the inset belongs to the first cell, not to the row. */
.nv-match .details-match__labels,
.nv-match .details-match__player {
  padding-left: 0;
  padding-right: 0;
}
/* the inset moves into the name column, where the mock puts it */
.nv-match .details-match__labels > .details-match__label:first-child,
.nv-match .details-match__player > .details-match__player-name {
  padding-left: 18px;
  padding-right: var(--ds-s-5);
}

/* The header cell of the sorted column carries the same tint as the column under it — in
   the mock the highlight is one unbroken band from the label to the last row, which is
   what makes it read as a column rather than as five separate boxes. */
.nv-match .details-match__labels:has(.details-match__label:nth-child(2) svg) > .details-match__label:nth-child(2),
.nv-match .details-match__labels:has(.details-match__label:nth-child(3) svg) > .details-match__label:nth-child(3),
.nv-match .details-match__labels:has(.details-match__label:nth-child(4) svg) > .details-match__label:nth-child(4),
.nv-match .details-match__labels:has(.details-match__label:nth-child(5) svg) > .details-match__label:nth-child(5) {
  background: rgba(255, 229, 0, .13);
}
.nv-match .details-match__labels:has(.details-match__label:nth-child(2) svg) + .details-match__players .details-match__player > :nth-child(2),
.nv-match .details-match__labels:has(.details-match__label:nth-child(3) svg) + .details-match__players .details-match__player > :nth-child(3),
.nv-match .details-match__labels:has(.details-match__label:nth-child(4) svg) + .details-match__players .details-match__player > :nth-child(4),
.nv-match .details-match__labels:has(.details-match__label:nth-child(5) svg) + .details-match__players .details-match__player > :nth-child(5) {
  background: rgba(255, 229, 0, .13);
}

/* --- the team band, to the mock's proportions --- */
.nv-match .details-match__team-wrapp {
  padding: var(--ds-s-4) 18px;
}
.nv-match .details-match__team-icon { width: 36px; height: 36px; }
.nv-match .details-match__team-name {
  font-size: 22px;
  letter-spacing: 0;
}
.nv-match .nv-stat-scope { padding-right: 0; }

/* --- 5. The tint has to fill the row, not float in it (2026-07-29) --------------------
   Owner: "криво покрашено". Measured, and the number is unambiguous: the row is 63px tall
   and the tinted cell is 21px, sitting 22px down from the row's top — a floating box, not
   a column. Same in the header: a 42px row holding a 16px cell.

   Cause is one declaration. The row is a flex line at `align-items: center`, so every cell
   shrinks to its own text height. Stretch them and the fill runs the full row height, which
   is what makes the mock's highlight read as one unbroken band from the label to the last
   player instead of as five separate rectangles.

   The centring the cells lose has to come back inside each one, or the figures would sit on
   the top edge of a 63px box. */
.nv-match .details-match__labels,
.nv-match .details-match__player {
  align-items: stretch;
}
.nv-match .details-match__labels > .details-match__label,
.nv-match .details-match__player > .details-match__player-stat,
.nv-match .details-match__player > .details-match__player-name {
  display: flex;
  align-items: center;
}
/* the figure columns keep their centred text; the name column stays left */
.nv-match .details-match__labels > .details-match__label:not(:first-child),
.nv-match .details-match__player > .details-match__player-stat {
  justify-content: center;
}
/* ADR needs its bar under the number, so that one cell stacks instead of centring a row */
.nv-match .details-match__player-stat[style*="--adr"] {
  flex-direction: column;
  justify-content: center;
}

/* Nothing else may fill a row: the base tints some of them, and a grey row under a yellow
   column produced the muddy band in the owner's screenshot. The highlight is the only fill
   this table has. */
.nv-match .details-match__player { background: none; }
.has-hover .nv-match .details-match__player:hover { background: none; }

/* The row's OWN vertical padding was the rest of it: 16px top and bottom on a 62px row
   leaves a 30px content box, and a stretched cell fills the content box, not the row. The
   padding moves into the cells, so the tint runs the row's full height. */
.nv-match .details-match__labels,
.nv-match .details-match__player {
  padding-top: 0;
  padding-bottom: 0;
}
.nv-match .details-match__player > .details-match__player-name,
.nv-match .details-match__player > .details-match__player-stat {
  padding-top: var(--ds-s-5);
  padding-bottom: var(--ds-s-5);
}
.nv-match .details-match__labels > .details-match__label {
  padding-top: var(--ds-s-4);
  padding-bottom: var(--ds-s-4);
}

/* --- 6. Three elements, three heights (2026-07-29) ------------------------------------
   Owner, third time asking: "выровнять по высоте и отцентровать, всё криво". Measured the
   CHILDREN this time rather than the containers — the containers were identical all along,
   which is why the first two passes found nothing:

     team band     icon mid -1 · name mid -5 · country mid -1 · scope mid 0
     map row       map name mid +21 · team title mid -4 · score mid -17

   The band's name sits 5px high because its line box is 27px tall for 22px type and the
   text rides the top of it. `line-height: 1` makes the box the type, and the flex centring
   then lands it where everything else already is. */
.nv-match .details-match__team-name { line-height: 1; }

/* The map row is the editor's red line: the map's name, both team names and the score are
   meant to read as ONE horizontal line and sat at three different heights.
   - the name was pinned to the artwork's floor; it moves to the row's middle.
   - the score column is [result, halves] stacked, so its middle fell between them and the
     result rode 17px high. The halves come out of the flow instead, hung under the result,
     which leaves the result itself as the thing being centred. */
.nv-match .match-info__item-mapname {
  bottom: auto;
  top: 50%;
  transform: translateY(-50%);
}
.nv-match .match-info__item-score {
  position: relative;
  display: block;
}
.nv-match .info-item-rounds {
  position: absolute;
  top: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  width: max-content;
}

/* The name was still 5px high after `line-height: 1`, and 5 is exactly half of the 10px
   bottom margin the base gives this element: in a centred flex row a margin shifts the
   VISUAL centre by half itself, while the box the browser centres stays symmetric. */
.nv-match .details-match__team-name { margin: 0; }

/* =========================================================================
 * Editor batch, 2026-07-30 — two corrections on the Abios match page.
 * ========================================================================= */

/* 1. The map tile's labels sit in a corner; they belong in the middle
 *    ("выровнять эти надписи и по ширине и по высоте блока, сделать по центру").
 *
 *    They were two absolutely positioned spans — index pinned top-left, map name
 *    bottom-left and later re-pinned to the vertical middle — so neither axis was
 *    ever centred and the pair could not be centred as a PAIR while both were out
 *    of flow. The layers are swapped instead: the artwork becomes the absolute one
 *    and fills the tile, and the two labels return to the flow inside a centred
 *    flex column. Centring is then the container's job, which is the only way the
 *    two stay centred as a group whatever either one says. */
.nv-match .match-info__item-img {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  text-align: center;
}
.nv-match .match-info__item-img > .picture {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.nv-match .match-info__item-index,
.nv-match .match-info__item-mapname {
  position: static;
  top: auto;
  right: auto;
  bottom: auto;
  left: auto;
  transform: none;
  max-width: calc(100% - 16px);
  text-align: center;
}

/* 2. The ad was glued to the rosters ("блок с горизонтальной рекламой слишком
 *    приклеен к составу команд") — measured at 0px between them, because the pane
 *    that carries it has no margin of its own and the tab structure it inherited
 *    never needed one: the two panes used to be alternatives, shown one at a time,
 *    and only became neighbours when the tab strip was removed on 07-29.
 *
 *    The gap is stated on the pane that follows another, so it cannot appear when
 *    the banner pane is the only one on the page. */
.nv-match .match-contents > .match-content + .match-content { margin-top: var(--ds-s-7); }

/* The head-to-head record beside the block's heading (editor, 2026-07-30).
 *
 * The two figures take the exact colours the row scores already use — #1FA65A and
 * --navi-red — rather than the system's --ds-win / --ds-loss, because the tally sits
 * directly above those scores and a second green in the same block would read as a
 * different meaning. (That the two pairs differ at all is pre-existing debt, noted rather
 * than doubled here.)
 *
 * SIZE, second pass (owner: "поправь размер счёта по отношению к размеру заголовка, а то
 * странно выглядит"). It shipped at 14px against the heading's 21px, and 0.667 is the
 * awkward middle — too small to belong to the title, too large to read as a deliberate
 * footnote, so it read as neither.
 *
 * What the eye compares here is not the two font sizes. The heading is UPPERCASE, so the
 * comparison is its CAP HEIGHT against the digits' FIGURE HEIGHT — measured on the painted
 * glyphs via canvas TextMetrics, not on line boxes, which report the leading and would have
 * said nothing:
 *
 *     heading cap ink  (І, 21px/700)   14.70px
 *     figures at 14px                  10.01px    4.69 short — reads as slipped below the line
 *     figures at 18px                  12.87px    1.83 short — reads level
 *
 * True parity would want ~20.5px, which is close enough to the heading to compete with it;
 * 18px is the deliberate half-step below. It stays secondary through the things that should
 * carry that — brackets, muted parentheses, coloured digits — rather than by being small
 * enough to look like an accident. Rendered at 13/600, 14, 16 and 18 and compared.
 *
 * SIZE, third pass — and the half-step is retired (editor, 2026-07-31: "как-то теперь
 * хочется, чтобы они были на одной строчке одним шрифтом"). A fixed 18px was only ever
 * tuned against the DESKTOP heading; the heading steps down to 16px under 768px and the
 * tally did not, so on a phone the score was rendering LARGER than the words it belongs to,
 * with tracking of its own besides (normal against the heading's .04em). Measured at 390:
 * heading 16px/.64px, tally 18px/normal.
 *
 * So it stops declaring its own type. `1em` plus inherited weight and tracking means one
 * number in one place — `--ds-sec-size` — decides both, at every breakpoint, for good. What
 * still separates the two is what should: muted parentheses around coloured digits. */
.nv-match .nv-match__title .nv-match__tally {
  margin-left: var(--ds-s-2);
  font-size: 1em;
  font-weight: inherit;
  letter-spacing: inherit;
  color: var(--ds-ink-3);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.nv-match .nv-match__tally-w { color: #1FA65A; }
.nv-match .nv-match__tally-l { color: var(--navi-red, #F6341E); }

/* ===== home.css ===== */
/* =========================================================================
 * home.css — wave 1, the home page.
 *
 * Load order: after navi-ds.css (tokens) and the approved page layers, before
 * chrome.css. Everything here consumes --ds-* tokens; no new colour is invented.
 *
 * SCOPE, AFTER THE 2026-07-26 REVIEW
 *   The hero and the news list keep the structure production already has. A
 *   restructure was built from the mockup — hero as a single slider card, news as
 *   a 3+2 grid — and the owner rejected both on sight: "нужно структуру, которая
 *   была до этого, просто визуально её усилить". So the mosaic and the list stay,
 *   and this file only strengthens their craft. The same applies to #NAVINATION,
 *   which stays dark (chrome.css no longer touches it).
 *
 *   The video block is the one block that did change form, and it was kept.
 * ========================================================================= */

/* =========================================================================
 * 1. Video block — a re-skin, CSS only.
 *
 * The cards are rendered by the frozen Vue app (`#vue-main-broadcast`), so the
 * markup cannot change. It does not need to: the DOM order is already image then
 * body, and only positioning put the body on top of the artwork —
 * `.video-item__img` is `position:absolute; inset:0` and the body floats over it
 * in the card's padding. Undoing that positioning gives a card in the same
 * language as the rest of the page, with the copy on white.
 *
 * The play badge is a direct child of the card, so it cannot be moved inside the
 * image element to stay centred on it. A two-row grid solves that without
 * touching the DOM: the badge and the artwork share row 1, the body takes row 2.
 *
 * Scoped to `.player-videos`, the home page's mount. The same component appears
 * on /media, which belongs to a later wave and keeps its current skin until then.
 * ========================================================================= */
.player-videos .video-item {
  display: grid;
  /* declared, not implicit: an implicit column is content-sized, and the card
     collapsed to the thumbnail's own 282px inside a 403px cell */
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto;
  /* the card used to BE the artwork, so its height was fixed to the thumbnail's;
     with a body under the image it has to grow */
  height: auto;
  min-height: 0;
  aspect-ratio: auto;
  padding: 0;
  border: 1px solid var(--ds-line);
  border-radius: var(--ds-r-md);
  background: var(--ds-card);
  overflow: hidden;
  transition: transform var(--ds-d-state) var(--ds-e-enter),
              box-shadow var(--ds-d-state) var(--ds-e-enter);
}
.player-videos .video-item__img {
  position: relative;
  grid-row: 1;
  grid-column: 1;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--ds-cell);
}
/* The thumbnail sits at the end of a four-deep `.picture` chain whose wrapper is
   absolutely positioned. That resolved against the card while the image frame was
   itself `position:absolute; inset:0`; once the frame became a normal 16:9 box the
   chain had nothing to size against and collapsed to the image's own 282px.
   Flatten the whole chain to a plain filling block instead of guessing at offsets. */
.player-videos .video-item__img .picture,
.player-videos .video-item__img .picture__wrapper,
.player-videos .video-item__img .picture__img,
.player-videos .video-item__img .picture__picture {
  position: static;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
}
/* `.picture::before` is the old aspect-ratio spacer — `padding-top: 55.58%` with
   no height. It worked while the image was absolutely positioned over it; in a
   normal flow it simply pushes the image out of the frame, which is why the
   thumbnails first rendered as an empty grey box. The frame owns the ratio now. */
.player-videos .video-item__img .picture::before { display: none; }
.player-videos .video-item__img img {
  position: static;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* The base sheet lays an 87%-opaque scrim over the artwork so white copy set on
   top of it stays readable. The copy is on white now, so the scrim only hides the
   thumbnail it is meant to protect. */
.player-videos .video-item__img::before { display: none; }

.player-videos .video-item > .icon-play-btn {
  position: static;
  grid-row: 1;
  grid-column: 1;
  place-self: center;
  /* the badge was centred the old way — absolute at 50% pulled back by half its
     own size — and that offset survives `place-self`, landing it 20px up and left */
  margin: 0;
  transform: none;
  z-index: 2;
  pointer-events: none;
}
.player-videos .video-item__link { position: absolute; inset: 0; z-index: 3; }

.player-videos .video-item__body {
  grid-row: 2;
  grid-column: 1;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--ds-s-2);
  padding: var(--ds-s-4) var(--ds-s-5) var(--ds-s-5);
  background: var(--ds-card);
  color: var(--ds-ink);
}
/* was pinned over the artwork; it is a meta row now */
.player-videos .video-item__header {
  position: static;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ds-s-3);
}
/* Dark chip, not a light one. The game marks in this component are WHITE glyphs —
   they were drawn for the dark scrim they used to sit on — so on a light grey chip
   the PUBG logo disappeared entirely. Recolouring them is not an option either:
   some are single-colour and some are not, so a filter would flatten the ones that
   carry brand colour. The chip carries the darkness instead. */
.player-videos .video-item__label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  border-radius: var(--ds-r-xs);
  background: var(--ds-ink-brand);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #fff;
}
.player-videos .video-item__label-icon { width: 13px; height: 13px; object-fit: contain; }
.player-videos .video-item__type { color: var(--ds-ink-3); display: inline-flex; align-items: center; }
.player-videos .video-item__content { display: flex; flex-direction: column; gap: 5px; }
.player-videos .video-item__content-date {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
  color: var(--ds-ink-3);
}
.player-videos .video-item__content-title {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--ds-ink);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@media (hover: hover) {
  .player-videos .video-item:hover { transform: translateY(-2px); box-shadow: var(--ds-sh-3); }
}
@media (prefers-reduced-motion: reduce) {
  .player-videos .video-item { transition: none; }
  .player-videos .video-item:hover { transform: none; }
}

/* =========================================================================
 * 2. Hero mosaic — production's structure, strengthened.
 *
 * Five tiles, one large and four small, headline set over the artwork. Nothing
 * here moves a tile; the work is legibility and finish.
 *
 * ⚠ The bundle owns this block below 1024px: it builds a Swiper on
 * `.hero__slider` and, on a phone, clones `.hero__poster_big` into a slide. So
 * anything that changes layout is scoped to >=1024px, where the mosaic is pure
 * CSS. Type, scrim and hover are safe at every width and are left unscoped.
 * ========================================================================= */
@media (min-width: 1024px) {
  /* One radius around the whole wall, so the block belongs to the same card
     language as everything below it. The tiles stay flush — that is the
     composition production has. */
  /* No radius. It was added to make the wall match the card language, and the
     owner rejected it twice over: rounding a full-bleed photo wall leaves the page
     background showing in each corner, which is what the "чёрные полоски по углам"
     report was. Square is the composition production has. */
  .hero .hero__wrapper { border-radius: 0; }
}

/* ⚠ THE SCRIM IS SETTLED — DO NOT ADD ANOTHER ONE.
   The gradient over these tiles went through three rounds with the owner on
   2026-07-18 and 07-22 and carries an `!important`: round 2 replaced a
   ".90/.74 black curtain" that made the bottom third unreadable with a glyph
   halo, round 3 re-balanced the two layers for desktop only because the light
   type read as "слишком резкий контраст", and mobile was approved as-is. A
   fourth gradient was written here and removed — reopening that is not
   "strengthening", it is undoing an answer that took three attempts.
   Text stacking is settled with it: the base gives `.hero__poster-title/-info`
   `z-index: 2` against the scrim's 1, so nothing here touches z-index either. */

/* Headlines keep their sizes. The clamp is the one addition: without it a long
   title on a small tile runs to three lines and collides with the meta row. */
.hero .hero__slider .hero__poster-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* The meta line was 12px of near-white sentence case — the same weight as body
   copy, on top of a photograph. As uppercase micro type it reads as a label and
   stops competing with the headline above it. */
.hero .hero__poster-info {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .74);
}
.hero .hero__poster-info-date { font-variant-numeric: tabular-nums; }

.hero .hero__poster-img { transition: transform var(--ds-d-enter) var(--ds-e-enter); }
@media (hover: hover) {
  .hero .hero__poster:hover .hero__poster-img { transform: scale(1.03); }
}

/* =========================================================================
 * 3. News list — production's structure, strengthened.
 *
 * Thumbnail left, copy right, five rows. The row stays a row; what changes is
 * that it becomes a card instead of a white slab with square corners, and the
 * type stops shouting.
 *
 * ⚠ Below 768px the bundle turns this list into a horizontal Swiper, and the rows
 * carry `margin-right` as the track's spacing. Only the desktop rhythm is
 * touched; surface and type are safe everywhere.
 * ========================================================================= */
.main-news .news-item {
  border: 1px solid var(--ds-line);
  border-radius: var(--ds-r-md);
  background: var(--ds-card);
  overflow: hidden;
}
@media (min-width: 768px) {
  /* 30px between rows read as five separate objects; at 12px they read as one
     list, which is what they are. */
  .main-news .news-item { margin-bottom: var(--ds-s-4); }
}
/* The featured highlight needs nothing here. It is already a `::after` with
   `border-radius: inherit`, so giving the row a radius above is what makes it
   stop being a square frame around rounded corners. An inset shadow was added
   here first and drew a second yellow edge inside the existing one. */

/* 28px is a page-heading size; in a list row it forced two-line wraps and left
   the summary looking like a footnote. */
.main-news .news-item__title {
  font-size: 21px;
  line-height: 1.26;
  letter-spacing: -.005em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* The game mark, moved out of the artwork by the template, gets a backing so it
   reads as one label with the abbreviation next to it rather than a loose glyph.
   The marks are drawn at wildly different densities, so the tile is fixed and the
   art is contained inside it. */
.main-news .news-item__info-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  border-radius: var(--ds-r-sm);
  /* A backing, not a frame. White with a hairline read as a bordered box around the
     mark; a plain grey tile with no edge is what the reference shows and it lets the
     logo sit on the tile rather than inside a container. The mark itself is the
     COLOURED one from the LOGO collection — the ICON set is white glyphs drawn for
     dark artwork, which is why the first attempt needed a dark tile to be visible. */
  background: var(--ds-cell);
  padding: 4px;
}
.main-news .news-item__info-badge .news-item__icon {
  position: static;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: contain;
}
/* the row's meta is a flex line now, so the badge sits on the text baseline */
.main-news .news-item__info {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
/* The block was pinned to the top of a 200px row, which left ~59px of dead space
   under the summary and made the card read as unfinished. Centred, the same
   content sits as one balanced group between the thumbnail's edges. */
.main-news .news-item__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--ds-s-6) var(--ds-s-6) var(--ds-s-6) var(--ds-s-6);
}
.main-news .news-item__title { margin-bottom: 0; }
.main-news .news-item__description { margin-top: 10px; }
/* the base sheet reserves 25px under the summary for the comments counter, which
   navi-enhance hides while the count is zero — inside a centred column that
   margin is what tipped the block 25px above its own centre */
.main-news .news-item__description { margin-bottom: 0; }

.main-news .news-item__info {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ds-ink-3);
}
.main-news .news-item__info-name { color: var(--ds-ink); }
.main-news .news-item__info-date { font-variant-numeric: tabular-nums; }
.main-news .news-item__description {
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--ds-ink-2);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.main-news .news-item__img img { transition: transform var(--ds-d-enter) var(--ds-e-enter); }
@media (hover: hover) {
  .main-news .news-item:hover .news-item__img img { transform: scale(1.04); }
}

@media (prefers-reduced-motion: reduce) {
  .hero .hero__poster-img,
  .main-news .news-item__img img { transition: none; }
  .hero .hero__poster:hover .hero__poster-img,
  .main-news .news-item:hover .news-item__img img { transform: none; }
}

/* =========================================================================
 * 4. The video block's section link.
 *
 * The "show all" control is a link in the heading row now, not a band under the
 * section (owner, 2026-07-26 — the treatment itself lives in chrome.css, because
 * it is site-wide). On this page the news and tournament sections say that in
 * Blade; the video block cannot, because it is rendered by the frozen Vue app.
 *
 * It does not need to. That wrapper already renders the heading, the card body
 * and the link as siblings, so a two-column grid seats the link beside the
 * heading without touching the markup: heading and link take row 1, everything
 * else spans both columns underneath.
 * ========================================================================= */
.player-videos .main-broadcasts__wrapper {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}
.player-videos .main-broadcasts__wrapper > .main-title { grid-column: 1; grid-row: 1; }
.player-videos .main-broadcasts__wrapper > .btn.gray {
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
  /* the heading carries the section's bottom margin; the link rides along with it */
  margin-bottom: 20px;
}
.player-videos .main-broadcasts__wrapper > *:not(.main-title):not(.btn) { grid-column: 1 / -1; }

/* =========================================================================
 * Editor review round 2, 2026-07-26 — home page.
 * ========================================================================= */

/* "Сделать эти блоки полностью кликабельными. Сейчас если навести на текст, его
   можно просто выделить, а переход идёт при клике по картинке."
   The tile's cover anchor sits under the copy: the base sheet lifts
   `.hero__poster-title` / `-info` to `z-index: 2` so they clear the scrim, and the
   link never got a layer of its own. Raising the link above them makes the whole
   tile one target — and stops the headline being selectable, which is what made it
   read as plain text rather than a link. */
.hero .hero__poster-link { z-index: 3; }

/* The featured frame left a dark hairline in each corner. `.news-item--featured::after`
   inherits the card's 10px radius, but it is inset to the PADDING box — inside the
   card's own 1px border — where the corner radius is 9px. A 10px arc in a 9px corner
   does not close, and the artwork showed through the gap. Matched to the box it
   actually occupies; the card's own border turns yellow as well, so even a sub-pixel
   seam can only ever show brand yellow instead of the photograph. */
.main-news .news-item--featured { border-color: var(--ds-yellow); }
.main-news .news-item--featured::after { border-radius: calc(var(--ds-r-md) - 1px); }

/* The game mark on the hero tiles, the same idea as the news rows (owner). The
   backing is the light grey tile rather than yellow: on this block the artwork is
   already loud and the LIVE pill owns the brand colour, so a yellow chip on every
   tile would compete with both. Grey keeps it a label. */
.hero .hero__poster-info { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.hero .hero__poster-info-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  padding: 4px;
  border-radius: var(--ds-r-sm);
  background: var(--ds-cell);
}
.hero .hero__poster-info-badge img { width: 100%; height: 100%; object-fit: contain; display: block; }
/* the base sheet puts " / " after the name; with a chip in front of it the first
   separator would sit between the mark and its own abbreviation */
.hero .hero__poster-info-badge + .hero__poster-info-name::before { content: none; }

/* =========================================================================
 * 5. Typography pass (owner, 2026-07-26).
 *
 * Measured across every text node on the page: 37 distinct type styles, 15 font
 * sizes and FIVE greys doing the work of the three the design system declares.
 * Everything is already one family (`Navi`), so the work is scale and ink.
 *
 * WHAT IS CORRECTED
 *   ink   #27262B and #707070 and #9C9A9D  ->  --ds-ink / --ds-ink-2 / --ds-ink-3
 *   size  10.5 -> 11.5 (the system's micro, and what the approved match blocks use)
 *         13.5 -> 14   (body)
 *         20   -> 21   (the section-heading size /matches and the match page use)
 *
 * WHAT IS DELIBERATELY LEFT
 *   The tournament cards' #55555C against the canon's #55555A: dE 1.24, below the
 *   threshold where an eye can separate them, so re-pointing it would move approved
 *   pixels and buy nothing. navi-ds.css records it as alignment debt on purpose.
 *   The 800-weight card titles and the 10px LAN chip are that batch's own voice.
 * ========================================================================= */

/* --- ink ---------------------------------------------------------------- */
[data-page="home"] .content-wrapper .main-title,
.main-news .news-item__title { color: var(--ds-ink); }
.main-news .news-item__info-type { color: var(--ds-ink-3); }
.main-news .news-item__description { color: var(--ds-ink-2); }

/* --- scale -------------------------------------------------------------- */
/* The section heading's size is the canon's now (navi-ds.css `--ds-sec-size`), not
   this file's. This rule set 21px with three classes of specificity, which is what
   kept the home page's headings at 21 on a phone while /matches and the player page
   had already dropped theirs to 16 — the same component at two sizes on one site.
   Removing it is the fix; nothing replaces it here on purpose. */
/* Micro labels: 11.5px is the system's step and the size the approved match rows
   already use for exactly this kind of line. */
.main-news .news-item__info,
.hero .hero__poster-info { font-size: var(--ds-t-micro); }
.main-news .news-item__description { font-size: var(--ds-t-body); }

/* The chip is set at 10.5px but its label carries the base sheet's own 16px, so
   the text inside the tile rendered half again as large as the tile was built for. */
.player-videos .video-item__label-text { font-size: inherit; letter-spacing: inherit; }
/* the video card's own micro labels join the same 11.5px step as the news and hero
   ones — they were the last 10.5px left on the page */
.player-videos .video-item__label,
.player-videos .video-item__content-date { font-size: var(--ds-t-micro); }

/* =========================================================================
 * ALIGNMENT PASS — 2026-07-27.
 *
 * `.news-item__content` is centred inside the fixed 202px row (deliberate — see
 * the note above about the 59px of dead space it removed), and centring is only
 * stable while every row's content is the same height. It was not: the headline
 * clamps to two lines but takes one whenever it fits, so on a short row the meta
 * line, the headline and the summary each sat 13.3px higher than on a long one,
 * and five rows read as a ragged column instead of a list.
 *
 * Reserving the second line — the one the clamp already allows — makes the
 * content box a constant height, and the centring then puts every row's parts on
 * the same line.
 * ========================================================================= */
.main-news .news-item__title { min-height: 2.52em; }   /* 2 x line-height 1.26 */

/* The summary is the other variable line in the same row. At 500px it fits on one
 * line for every current story, but at 390px "Крайне важный матч для нашей команды"
 * takes two, and the centred stack lifted that whole card 10.5px above its
 * neighbours — the same defect as the headline, one element lower.
 *
 * Reserving the second line costs no height: the row is a fixed 202px and the
 * space is already there, currently being handed out by the centring. Measured
 * room at 1440 is 160px against a 144px reserved stack, so desktop keeps 16px in
 * hand — and the row now holds its rhythm whatever length an editor writes.
 *
 * The px value is the fallback for browsers without the `lh` unit (before Chrome
 * 121 / Safari 16.4): same 42px, it just will not follow a later change of
 * leading the way the `lh` line does. */
.main-news .news-item__description {
  min-height: 42px;
  min-height: 2lh;
}

/* =========================================================================
 * ALIGNMENT PASS, round 2 — 2026-07-27, owner picked the variants.
 * ========================================================================= */

/* 1. The hero's small tiles: the date gets its own line, in all of them.
 *
 *    `VALORANT / РЕПОРТАЖ / 26 июля 2026` needs 307px of the 274.5px a small tile
 *    gives it, so the date wrapped and left line one ending on a dangling "/",
 *    while the three PUBG tiles beside it — `PUBG` being four characters shorter —
 *    stayed on one line and sat 22px lower. It cannot be made to fit: dropping the
 *    separators' literal spaces reclaims 11.5px and tightening the 8px gap another
 *    12px, still ~9px short, and the next long game name would break it again.
 *
 *    So the wrap becomes the design rather than an accident: game and section on
 *    line one, date on line two, in every small tile whether it needs it or not.
 *    Nothing is dropped, all four tiles read the same, and the separator after the
 *    section goes with the line break that used to strand it. The big tile keeps
 *    its single line — it has 587px. */
/* The separators carry the same defect the match rows had: the sheet writes them
 * as `content: " / "`, spaces included, and the row's flex gap then lands only on
 * the right — 2.9px on one side of the slash against 10.9px on the other. Paying
 * the left side from a margin that matches the gap evens them up. Stated first so
 * the small-tile rules below can drop the one that the line break strands. */
.hero__poster-info-name::after,
.hero__poster-info-type::after {
  content: "/";
  margin-left: 8px;
}

.hero__poster:not(.hero__poster_big) .hero__poster-info {
  flex-wrap: wrap;
  row-gap: 4px;
}
.hero__poster:not(.hero__poster_big) .hero__poster-info-date { flex: 0 0 100%; }
/* the date is a line of its own now, so the separator that used to introduce it
   would sit at the end of line one with nothing after it */
.hero__poster:not(.hero__poster_big) .hero__poster-info-type::after { content: none; }

/* 2. Mobile: the slider's counter was printed over the section's own link.
 *
 *    `.swiper-pagination-fraction` is pulled to `top: -36px; right: 0`, which is
 *    the corner "Все новости →" and "Все турниры →" already occupy — 33px and 55px
 *    of overlap respectively, two pieces of text drawn on top of each other. Below
 *    the rail it has the width to itself. Only these two blocks carry a fraction
 *    counter, and only under 768px does the head sit in its way. */
@media (max-width: 767px) {
  .main-news .swiper-pagination-fraction,
  .main-tournament .swiper-pagination-fraction {
    top: auto;
    bottom: -6px;
    left: 0;
    right: 0;
    width: 100%;
    text-align: center;
  }
  .main-news .swiper-container,
  .main-tournament .main-tournament__body { padding-bottom: 26px; }
}

/* The video block's head is the one that does not hold its link inside
   `.main-title` — the frozen wrapper renders them as siblings and the grid above
   seats them on one row — so the baseline rule on `.main-title` cannot reach it.
   Same defect (8.6px), same fix, applied to the two items of that row. */
.player-videos .main-broadcasts__wrapper > .main-title,
.player-videos .main-broadcasts__wrapper > .btn.gray { align-self: baseline; }

/* =========================================================================
 * The phone opens on the slider, not on the matches list (editor, 2026-07-31:
 * "на главной странице слайдер идет ниже блока матчей").
 *
 * The move itself is `nvHomeHeroFirst` in the enhance layer — the hero and the sidebar sit
 * in different flex containers, so no `order` can interleave them, and the CSS-only way
 * round that (`display: contents` on the wrapper) was built and measured: the news and
 * banner swipers blew out to 714px and 1630px inside a 390px viewport, because they take
 * their width from the wrapper's box.
 *
 * What CSS still owns is the 80px of dead grey the editor ringed. `.sidebar` is
 * `position: sticky; top: 80px`, which is right in a two-column desktop and pointless in a
 * single stacked column — and there it was spending exactly its 80px offset above the first
 * thing on the page. Measured: static → 0, top:0 → 0, and the offset does not vary with
 * scroll. Only the home page shows it, because only there is the sidebar ordered first.
 *
 * It is stated in CSS rather than left to the script on purpose: if the enhance layer never
 * runs, the phone still does not open on 80px of nothing.
 * ========================================================================= */
@media only screen and (max-width: 767px) {
  [data-page="home"] .sidebar { position: static; }

  /* And the page needs REAL air under the branding banner, now that something with an
     artwork is the first thing below it (owner, same day: "не вижу здесь расстояния между
     баннером и турниром"). The 80px removed above had been doing that job by accident, and
     without it the hero's picture lands straight on the banner's picture — two images
     touching with nothing to tell them apart.

     60px = `--ds-sec-above`, the distance this site puts between two blocks and the one
     `align.py` already enforces everywhere else. Rendered at 24, 40 and 60 and compared
     before choosing: 24 still read as crowded, and 60 is still less than the 80 that
     shipped here by accident.

     Home only. Every other page opens with the game filter strip — a control, deliberately
     tucked under the banner — and none of them show this.

     `!important` is not a preference here: `.container_flex` carries `padding: 0 !important`
     in the base sheet, so no specificity can reach it. Stated on the container rather than
     on the content column so it holds even if the enhance layer never runs and the sidebar
     is still the first block. */
  [data-page="home"] > .container_flex { padding-top: var(--ds-sec-above, 60px) !important; }
}

/* ===== align.css ===== */
/* =========================================================================
 * align.css — the cross-page alignment pass, 2026-07-27.
 *
 * Owner: "теперь так же системно пройдись по остальным страницам". Every page
 * type in `tools/urls.txt` was measured at 1440, 1280 and 390 with
 * `align.py --pages … --heads --sweep 2`. Most of the site came back clean; what
 * did not is here.
 *
 * Why a file of its own: the four fixes from the first pass each went into the
 * layer that owns their component (chrome, home, match-redesign,
 * tournament-card-batch2). These two belong to components no layer owns yet —
 * they live on team and player pages, which are wave 2 and not designed. Putting
 * them in one named layer keeps them reviewable, and keeps wave 2 free to replace
 * them wholesale rather than having to find them inside somebody else's file.
 *
 * Load order: after the wave layers, before chrome.css.
 * ========================================================================= */

/* -------------------------------------------------------------------------
 * 1. Player card — the equipment list's labels did not line up.
 *
 * `/teams/cs2`, both columns: "Гарнитура:" sat 13px below "Shoes:" beside it,
 * "Мышка:" 13px below "Кейсы:", and so on down the card. The rows are a fixed
 * 89px (93.8 on a phone) and `.player-card__device` centres its text against a
 * 74px product image — so a model name that wraps to two lines makes its text
 * block taller and lifts the label out of line with its neighbour. Three of the
 * twelve rows wrap on desktop; on a phone one wraps to three lines.
 *
 * Reserving lines is the wrong tool here: the value is a product name, it runs
 * one to three lines, and reserving the longest would leave most rows half empty.
 * The label is what the eye scans down the column, so the block is anchored to the
 * top instead and the value grows downwards into space the row already has —
 * measured, the longest (three lines at 390px) ends 22px clear of the row's floor.
 * ------------------------------------------------------------------------- */
.player-card__device { align-items: flex-start; }

/* -------------------------------------------------------------------------
 * 2. News rows outside the home page — the meta line wraps at 390px.
 *
 * The same `.main-news` rows appear on team pages, where the cards are narrower
 * and carry no game badge. There the meta ("VALORANT · Репортаж · дата") takes
 * two lines on the first card and one on the rest, and since the content block is
 * centred that lifted the first card's whole stack 11px above its neighbours.
 *
 * Home is untouched by this: its meta is already 46px on a phone — the badge sets
 * that — so a 36px floor never applies there. This only picks up the rows that
 * have no badge to hold the line open.
 * ------------------------------------------------------------------------- */
@media (max-width: 767px) {
  .main-news .news-item__info {
    min-height: 36px;                /* two lines plus the row gap, for older engines */
    min-height: calc(2lh + 8px);
    /* Reserving the height is only half of it: the row is a wrapped flex container
       whose lines are centred, so a one-line meta floated to the middle of the new
       36px box and came out 11px low — the same defect, moved. `align-content`
       starts the lines at the top of the reserved box. `align-items` stays centred:
       that one aligns the badge against the text within a line, which is right. */
    align-content: flex-start;
  }
}

/* -------------------------------------------------------------------------
 * 3. The "/" between the game, the section and the date in a news meta line.
 *
 * Owner, 2026-07-27, with the gaps ringed on a screenshot: "снова видно, разные
 * отступы между элементами — нужно системно их везде исправить".
 *
 * Same defect as the match rows and the hero, and the last place it was left:
 * the sheet writes the separator as `content: " / "`, spaces included, and the
 * row is a flex line with an 8px gap. The leading space sits inside the name's
 * own box while the trailing one is *added* to the gap — 2.6px on one side of
 * the slash against 10.6px on the other.
 *
 * Dropping the spaces and paying the left side from a margin that matches the gap
 * makes both sides 8px. Stated on the base selector rather than under `.main-news`
 * so it reaches these rows wherever they are rendered — home, team pages, and
 * whatever wave 2 does with them.
 *
 * The rest of the site's separators were checked at the same time and need
 * nothing: `.news-result__date::before` on /search sits in a row with no gap, so
 * its own two spaces are already symmetric, and the two `.match-item__date span`
 * rules resolve to `content: none` on every page that renders them.
 * ------------------------------------------------------------------------- */
.news-item__info-name::after,
.news-item__info-type::after {
  content: "/";
  margin-left: 8px;
}

/* -------------------------------------------------------------------------
 * 4. The news row's date moves to the row's bottom-right corner.
 *
 * Owner's call, 2026-07-27, after seeing both rendered. The meta line used to
 * carry game, section AND date, which made it the longest thing in the row — and
 * that is what wrapped on every narrow column and lifted the block above its
 * neighbours. Two of the defects fixed earlier this day were that wrap: the hero's
 * small tiles and the team page's rows at 390px. Moving the date out is not
 * cosmetic, it removes the cause.
 *
 * Positioned against `.news-item__content`, not the row, so `right/bottom: 0` land
 * on the inside of the content's own padding and stay correct if that padding
 * changes. The content is a centred flex column; an absolutely positioned child is
 * out of that flow, so the headline and summary keep their own centring.
 *
 * The separator after the section goes with it — the chain now ends there.
 * ------------------------------------------------------------------------- */
.news-item__content { position: relative; }
.news-item__info-date {
  position: absolute;
  /* an absolutely positioned child resolves against its containing block's PADDING
     box, so `0` would sit flush with the card's edge rather than inside the copy's
     own inset — the offsets repeat the padding the content itself uses */
  right: var(--ds-s-6);
  bottom: var(--ds-s-6);
  margin: 0;
}
.news-item__info-type::after { content: none; }

/* -------------------------------------------------------------------------
 * The team's social row — four per row on a phone (owner, 2026-07-31).
 *
 * Found by sweeping every page type for wrapping components whose last row is an
 * orphan. Seven marks left one alone on a third row with two empty slots beside it;
 * a four-mark team left one alone on a second.
 *
 * Four per row rather than a smaller gap, because the gap is knife-edge: shrinking
 * it to 12px fits four in the 334px this block has on /teams and misses in the 332px
 * it has on /teams/cs2. A grid does not depend on the marks' own widths at all, and
 * four per row is the shape the owner already chose for the footer's socials.
 *
 * `.hero-team .block-team__social` in the base sheet carries the flex layout at two
 * classes, so a single-class rule here would set the columns and lose the display.
 * ------------------------------------------------------------------------- */
@media (max-width: 767px) {
  .hero-team .block-team__social,
  .block-team__social {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px 6px;
    justify-items: start;
  }
}

/* ===== teams-players.css ===== */
/* teams-players.css — wave 2. The team and player pages.
 *
 * WHAT / WHY (owner round, 2026-07-27)
 *
 * Four geometry variants were built first — wider block, three-up, summarised copy — and all
 * four were rejected: "ни один вариант мне не нравится ... дело не в раскладке, а в самих
 * карточках". So the grid, the column count and the two-column body are untouched here.
 * Only the card's own craft changes. Sheets:
 * `docs/redesign/2026-07-25_full-site/shots/wave2-variants/`.
 *   product card — treatment **А**: the plate is inset inside the card, with its own radius
 *   equipment tile — treatment **Б**: every position is its own card on the dark ground
 * One standing amendment on the product card: **the copy stays in full — no clamp and no
 * "Подробнее" link**, even though the А panel was rendered with both.
 *
 * Two hard caps in the base sheet are the reason both cards read as cramped, and neither is
 * reachable by styling around it:
 *   .player-card__device-info          max-width: 120px  (index.css)
 *   .player-recommendation__device-description  max-width: 280px
 * The tile has ~300px of its column and was spending 50 of it on text; the product card has
 * 340px of measure and was using 280. Both are lifted below.
 *
 * .player-card__devices is a CSS multi-column box (column-count: 2), NOT a grid or a flex
 * row — a tile's percentage resolves against the COLUMN. Hence width:100% + break-inside.
 *
 * The white plate under a product stays: the images are transparent PNGs, but 8 of the 12
 * are dark ink (SAUCONY measures pure black), so they vanish without it. It gets a radius
 * and a consistent inset instead of being a hard white square.
 *
 * Layout declarations are breakpoint-scoped; the visual treatment is not. Mobile ships a
 * different layout for both components — the devices row is a horizontal scroller with
 * min-width items — and an unscoped width would collapse it to one item per screen.
 */

/* ============================================================================
   Product card — "Aleksib рекомендует". Treatment Б: the plate spans the card's
   full width, the body sits compact beneath it.
   ============================================================================ */

.player-recommendation__device {
  padding: 16px;
  background: var(--ds-card, #fff);
  border: 1px solid var(--ds-line, #E6E6E2);
  border-radius: var(--ds-r-md, 10px);
  overflow: hidden;
  transition: box-shadow var(--ds-d-micro, 130ms) var(--ds-e-enter, ease),
              border-color var(--ds-d-micro, 130ms) var(--ds-e-enter, ease);
}

/* the whole card is already a link (__device-link is a full-cover anchor) — say so */
.player-recommendation__device:hover {
  box-shadow: var(--ds-sh-2, 0 4px 14px rgba(20, 20, 24, .10));
  border-color: var(--ds-line-strong, #E2E2DE);
}

/* the product sat in ~290px of bare white; give it a plate of its own — INSET inside the
   card, with its own radius, rather than spanning the card's full width (treatment А). */
.player-recommendation__device-img {
  margin: 0 0 18px;
  padding: 16px;
  background: var(--ds-cell, #F0F0ED);
  border-radius: 8px;
}

.player-recommendation__device-content {
  padding: 0 4px 4px;
}

/* The base sheet cancels its grid's last-row gutter with `margin-bottom: -20px` on the
   container. That negative margin also pulls the whole block's outer edge up by 20px, which
   is why the gap above «Тиммейты» measured 40 at 390px against the canon 60 — found by the
   new section-gap check, not by eye. The card's own bottom margin is stated here, so the
   cancellation is not needed at either width. */
.player-recommendation__devices {
  margin-bottom: 0;
}

.player-recommendation__device-title {
  margin-bottom: 9px;
  color: var(--ds-ink-brand, #1A191D);
  font-size: 17px;
  line-height: 1.25;
}

/* max-width: 280px is the base sheet's; the card has 340px of measure. Copy stays FULL —
   no line-clamp here on purpose, the owner asked for the whole text as it is today. */
.player-recommendation__device-description {
  max-width: none;
  color: var(--ds-ink-2, #55555A);
  font-size: 13.5px;
  line-height: 1.55;
}

@media (min-width: 768px) {
  /* Cards take their natural height instead of stretching to the tallest in the row. With
     full-length copy the two cards in a row are rarely the same length, and a bordered box
     with 120px of empty floor under its last line reads as broken rather than as aligned.
     Ragged row bottoms are the cheaper of the two, and the page ground explains them. */
  .player-recommendation__devices {
    align-items: flex-start;
  }

  .player-recommendation__device {
    width: calc(50% - 8px);
    margin: 0 0 16px;
  }
}

@media (max-width: 767px) {
  /* mobile keeps the base sheet's full-width card; only the outer rhythm is restated */
  .player-recommendation__device {
    margin-bottom: 16px;
  }
}

/* ============================================================================
   Equipment tile — the roster card's device list. Treatment Б: every position
   becomes its own small card on the dark ground.
   ============================================================================ */

.player-card__device {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 12px 14px;
  background: var(--ds-surface-dark-2, #27262B);
  border: 1px solid var(--ds-line-dark, rgba(255, 255, 255, .08));
  border-radius: var(--ds-r-md, 10px);
}

/* was a hard 87px white square with the art bleeding to its edges at random scales */
.player-card__device-img {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 56px;
  width: 56px;
  min-width: 56px;
  height: 56px;
  padding: 8px;
  background: #fff;
  border-radius: 8px;
}

.player-card__device-img img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* max-width: 120px is the base sheet's, and it is why every product name broke one word per
   line. Lifting it also removes the 14.7px stagger the alignment sweep reports at 390px:
   the label stops wrapping, so the value below it stops moving. */
.player-card__device-info {
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  max-width: none;
}

.player-card__device-name {
  color: var(--ds-ink-3, #8F8F92);
  font-size: 10.5px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.player-card__device-model {
  margin-top: 4px;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
  /* Reserve the second line the value can already take. The pair is centred against a 56px
     plate in an 85px tile, so a value that wraps starts 9.1px higher than one that does not —
     measured across all twelve tiles. Reserving costs no height here: 2 lines of caption+value
     is 54.4px against the plate's 56px, so the tile stays 85px either way. */
  min-height: 36px;
  min-height: 2lh;
}

@media (max-width: 767px) {
  /* Mobile is the mirror image of the desktop case: the tile is narrow, so it is the CAPTION
     that runs to two lines («ИГРОВАЯ ПОВЕРХНОСТЬ», «ПОМОЩЬ ЖИВОТНЫМ») and pushes the value
     13.6px down in three tiles of twelve. Reserve its second line as well. The pair then
     measures 67.6px against a 56px plate, so the tile grows ~12px — the one place in this
     file where reserving is not free, and worth it: every tile in the scroller matches. */
  .player-card__device-name {
    min-height: 27px;
    min-height: 2lh;
  }
}

@media (min-width: 768px) {
  .player-card__devices {
    padding: 16px;
  }

  /* percentage resolves against the COLUMN here, not the row — see the header note */
  .player-card__device-wrapp {
    width: 100%;
    padding: 5px;
    vertical-align: top;
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
  }
}

/* ============================================================================
   Team-page news list — the comment badge was moving the whole row
   ============================================================================ */

/* `.news-item__content` is a centred column in a fixed 200px box, and the bundle hides the
   comment badge with an inline `display: none` when a story has no comments. So a row WITH
   comments carries a 16px taller stack, and centring lifts its heading, summary and meta 8px
   above the rows either side — three rows on /teams/chess, at all three widths.
   The badge cannot simply be given a min-height: a display:none element has no box. Give it
   its box back and hide it visually instead, so every row's stack is the same height.
   Scoped to .main-news: the home page draws its list inside .hero and is already clean.
   If the bundle ever switches from an inline style to a class this stops matching and the
   behaviour degrades to today's — a miss, not a break. */
.main-news .news-item__comments[style*="display: none"] {
  display: inline-flex !important;
  visibility: hidden;
}

/* ============================================================================
   /teams — the game rail. Named tiles (owner picked variant А, 2026-07-27)
   ============================================================================ */

/* The rail was already the good part of this page: sticky, with an active state that paints
   the current team's tile yellow, and a styled scrollbar. What it had was 18 tiles carrying
   nothing but a logo — three Mobile Legends rosters were identical, and Fatal Fury,
   CrossFire, Trackmania and Marvel Rivals are not marks most people read at 40px.
   So: keep the tile, keep the scroll, add the name and take the tile down a size.
   The icon moved inside .teams-block__control-img in the Blade — see the note there. */

.teams-block__control {
  min-width: 104px;
  max-width: 104px;
  overflow: visible;
}

.teams-block__control:not(:last-child) {
  margin-right: 12px;
}

.teams-block__control-img {
  overflow: hidden;
  border-radius: 6px;
}

.teams-block__control-icon {
  width: 30px;
  height: auto;
}

.teams-block__control-label {
  display: block;
  margin-top: 8px;
  color: var(--ds-ink-2, #55555A);
  font-size: 10.5px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .06em;
  text-align: center;
  text-transform: uppercase;
  /* "COUNTER-STRIKE 2" and "LEAGUE OF LEGENDS" take two lines where the rest take one, so
     without a reserved line the rail's height depends on which games exist — the same
     variable-line-count cause behind every alignment defect of this wave. */
  min-height: 26px;
  min-height: 2lh;
}

.teams-block__control-label em {
  display: block;
  margin-top: 2px;
  color: var(--ds-ink-3, #8F8F92);
  font-size: 9.5px;
  font-style: normal;
  letter-spacing: .04em;
}

/* the plate already turns yellow for the current team; carry that into the name */
.teams-block__control.is-active .teams-block__control-label {
  color: var(--ds-ink-brand, #1A191D);
}

/* The base sheet hangs the hover glow on the TILE — which used to be just the plate, and is
   now plate + label. With no background and no radius on the tile, the glow drew a hard
   104x99 rectangle around the artwork AND the words under it, which read as a stray white
   card (owner: "странный ховер"). Put it back on the thing it was drawn for, and let it
   follow the plate's own corners. */
.has-hover .teams-block__control:hover {
  box-shadow: none;
}

.has-hover .teams-block__control:hover .teams-block__control-img {
  box-shadow: 0 5px 15px 0 #FFF093;
}

/* the name answers the hover too, so the whole tile reads as one control */
.has-hover .teams-block__control:hover .teams-block__control-label {
  color: var(--ds-ink-brand, #1A191D);
}

@media (max-width: 767px) {
  /* the base sheet takes the tile down to 70px here, which is too narrow for a name —
     84px keeps the row compact while letting "COUNTER-STRIKE 2" wrap to two lines rather
     than one word per line */
  .teams-block__control {
    min-width: 84px;
    max-width: 84px;
  }

  .teams-block__control-icon {
    width: 24px;
  }

  .teams-block__control-label {
    margin-top: 6px;
    font-size: 9px;
    letter-spacing: .04em;
  }

  .teams-block__control-label em {
    font-size: 8.5px;
  }
}

/* ===== hero.css ===== */
/* hero.css — the home hero slider. Restored 2026-07-27 at the owner's request.
 *
 * HISTORY, because this block has been in and out once already. It was built from the
 * owner's mockup on 2026-07-26 (`60223766`), shown, and rejected on sight — "нужно
 * структуру, которая была до этого, просто визуально её усилить" — and reverted in
 * `9bd82ebb`. On 2026-07-27 the owner asked for it back, sending the same mockup as the
 * reference. This is that code, recovered rather than rewritten, so the traps it had
 * already solved stay solved. The news list below it is NOT touched this time: it keeps
 * production's horizontal rows, which is what the owner asked for.
 *
 * ⚠ The `hero__slider` class must stay off the markup — see the note at the top of
 * `client/index/banners.blade.php`. The frozen bundle owns that class and reads a set of
 * nodes off it with no null guards.
 *
 * Its own layer rather than inside home.css: this block has been reverted once, and a
 * self-contained file is a one-line removal instead of an archaeology exercise.
 *
 * Proportions differ from the mockup and that is the open question for the owner:
 * this build splits the card 50/50 at 430px tall; the mockup measures 457/326 (58/42)
 * at 335px. Variants rendered for the choice — see docs/redesign/.../shots/hero-variants/.
 */

.nv-hero {
  --nv-hero-split: 50%;
  --nv-hero-h: 430px;
  position: relative;
  margin-bottom: var(--ds-s-8);
  background: none;
}
.nv-hero .container { position: relative; }
.nv-hero__viewport {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  border: 1px solid var(--ds-line);
  border-radius: var(--ds-r-md);
  background: var(--ds-card);
  /* the scrollbar is the mechanism, not the interface */
  scrollbar-width: none;
  -ms-overflow-style: none;
  overscroll-behavior-x: contain;
}
.nv-hero__viewport::-webkit-scrollbar { display: none; }
.nv-hero__track { display: flex; width: 100%; }
.nv-hero__slide {
  position: relative;
  flex: 0 0 100%;
  scroll-snap-align: start;
  display: grid;
  grid-template-columns: var(--nv-hero-split) 1fr;
  /* A fixed height, not a minimum: with `min-height` the row was sized by the
     artwork's own aspect ratio, so the hero's height became a property of
     whatever an editor uploaded (519px from a 548x400 file). Both text blocks
     are line-clamped, so the panel cannot outgrow this. */
  height: var(--nv-hero-h);
}
.nv-hero__link {
  position: absolute;
  inset: 0;
  z-index: 2;
}
.nv-hero__media {
  position: relative;
  overflow: hidden;
  background: var(--ds-cell);
}
.nv-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--ds-d-enter) var(--ds-e-enter);
}
.nv-hero__slide:hover .nv-hero__media img { transform: scale(1.02); }
.nv-hero__panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--ds-s-4);
  /* bottom padding reserves the control row, which is positioned over it */
  padding: var(--ds-s-8) var(--ds-s-8) 76px;
  min-width: 0;
}
.nv-hero__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--ds-s-3);
  font-size: var(--ds-t-micro);
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ds-ink-3);
}
.nv-hero__tag {
  padding: 4px 9px;
  border-radius: var(--ds-r-xs);
  background: var(--ds-cell);
  color: var(--ds-ink);
}
.nv-hero__date { font-variant-numeric: tabular-nums; }
.nv-hero__date::before {
  content: "·";
  margin-right: var(--ds-s-3);
  color: var(--ds-line-strong);
}
.nv-hero__title {
  margin: 0;
  font-size: 27px;
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -.01em;
  color: var(--ds-ink);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.nv-hero__summary {
  margin: 0;
  font-size: var(--ds-t-body);
  line-height: 1.5;
  color: var(--ds-ink-2);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.nv-hero__controls {
  position: absolute;
  left: calc(var(--nv-hero-split) + var(--ds-s-8));
  right: var(--ds-s-8);
  bottom: var(--ds-s-7);
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ds-s-5);
  pointer-events: none;
}
.nv-hero__dots,
.nv-hero__arrows { display: flex; align-items: center; gap: var(--ds-s-2); pointer-events: auto; }
.nv-hero__dot {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 0;
  border-radius: var(--ds-r-pill);
  background: var(--ds-line-strong);
  cursor: pointer;
  transition: width var(--ds-d-state) var(--ds-e-enter), background-color var(--ds-d-state) var(--ds-e-enter);
}
.nv-hero__dot:hover { background: var(--ds-ink-3); }
.nv-hero__dot.is-active { width: 22px; background: var(--ds-ink); }
.nv-hero__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid var(--ds-line-strong);
  border-radius: var(--ds-r-pill);
  background: var(--ds-card);
  color: var(--ds-ink);
  cursor: pointer;
  transition: background-color var(--ds-d-micro) var(--ds-e-enter),
              border-color var(--ds-d-micro) var(--ds-e-enter),
              color var(--ds-d-micro) var(--ds-e-enter);
}
.nv-hero__arrow svg { width: 16px; height: 16px; }
.nv-hero__arrow:hover {
  border-color: var(--ds-yellow);
  background: var(--ds-yellow);
  color: var(--ds-yellow-ink);
}
.nv-hero__arrow:disabled { opacity: .38; cursor: default; }
.nv-hero__arrow:disabled:hover { border-color: var(--ds-line-strong); background: var(--ds-card); color: var(--ds-ink); }
.nv-hero__slide--ads .nv-hero__media { background: var(--ds-bg-dark); }
.nv-hero__slide--ads .nv-hero__media img { object-fit: contain; }
@media only screen and (max-width: 1023px) {
  .nv-hero { --nv-hero-h: 360px; --nv-hero-split: 50%; }
  .nv-hero__panel { padding: var(--ds-s-6) var(--ds-s-6) 72px; }
  .nv-hero__title { font-size: 22px; }
  .nv-hero__controls { left: calc(var(--nv-hero-split) + var(--ds-s-6)); right: var(--ds-s-6); bottom: var(--ds-s-6); }
}
@media only screen and (max-width: 767px) {
  /* Stacked: artwork on top, panel under it, controls on their own row below the
     card — over a panel whose height depends on the headline they would land on
     the text. */
  .nv-hero { margin-bottom: var(--ds-s-7); }
  .nv-hero__slide { grid-template-columns: 1fr; height: auto; }
  .nv-hero__media { aspect-ratio: 16 / 9; }
  .nv-hero__panel { gap: var(--ds-s-3); padding: var(--ds-s-5); }
  .nv-hero__title { font-size: 19px; -webkit-line-clamp: 3; }
  .nv-hero__summary { -webkit-line-clamp: 2; }
  .nv-hero__controls {
    position: static;
    padding-top: var(--ds-s-4);
  }
}
@media (prefers-reduced-motion: reduce) {
  .nv-hero__media img,
  .nv-hero__dot,
  .nv-hero__arrow { transition: none; }
  .nv-hero__slide:hover .nv-hero__media img { transform: none; }
}
/* =========================================================================
 * Owner round, 2026-07-27 — variant А with three corrections
 *
 *   1. the controls move INSIDE the card, into the panel's bottom-right corner
 *   2. the discipline logo sits beside the game name
 *   3. the date leaves the meta line for the panel's foot
 *
 * On (3): in a 343px panel the three-part meta wrapped and left a stranded "·" alone
 * on the second row, which is what the owner called out. The date moving to the foot is
 * not a new idea either — the news rows have done exactly this since 2026-07-27, so the
 * site gains one rule for "where a date goes" instead of a second exception.
 * ========================================================================= */

/* The panel drives its own vertical rhythm: meta and copy at the top, foot pinned to the
   floor, so the date sits on the same line as the controls whatever the headline does. */
.nv-hero__panel {
  display: flex;
  flex-direction: column;
}

.nv-hero__meta {
  display: flex;
  align-items: center;
  gap: var(--ds-s-2);
  flex-wrap: nowrap;
}

/* Sized on the cap band of the name beside it, not on the line box — an icon centred in a
   line box lands high, which is the `--ds-optical` rule from navi-ds.css. */
.nv-hero__game-logo {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  object-fit: contain;
  align-self: center;
  transform: translateY(var(--ds-optical, .1em));
  /* NO brightness filter. It was added on the assumption that these marks are white ink
     drawn for dark tiles — true of the ICON collection, but this banner serves
     `Game::getLogoUrl()`, the COLOURED logo. Forcing that to black turned NAVI's own
     wordmark into a black lozenge on the home hero (owner, 2026-07-29). A mark that is
     already dark needs no help; one that is not is a data problem, not a CSS one. */
}

/* on a dark panel the mark keeps its own white */
.nv-hero__panel--dark .nv-hero__game-logo { filter: none; }

.nv-hero__foot {
  margin-top: 0;
}

.nv-hero__date {
  color: var(--ds-ink-3, #8F8F92);
  font-size: var(--ds-t-small, 12.5px);
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* Anchored to the card rather than to the section: `left` is dropped so the row hugs the
   panel's bottom-right corner and cannot be pushed outside the card by the slide's height,
   which is what happened when it was stretched between `left` and `right`. */
.nv-hero__controls {
  left: auto;
  right: var(--ds-s-7);
  bottom: var(--ds-s-7);
  width: auto;
  justify-content: flex-end;
  gap: var(--ds-s-5);
}

@media only screen and (max-width: 767px) {
  /* stacked card: the foot and the controls share the panel's last row */
  .nv-hero__controls { left: auto; right: var(--ds-s-5); bottom: var(--ds-s-5); }
}

/* The panel must not outgrow the card. Measured while building: meta + headline + summary
   + foot came to 350px against the card's 335, so the panel overflowed and pushed the
   control row outside the card entirely. The card's height is the fixed thing here — a
   slider whose height depends on the current headline would jump on every slide — so the
   copy is bounded instead: three lines of headline, two of summary, foot on the floor. */
.nv-hero__viewport { height: var(--nv-hero-h); }

.nv-hero__panel {
  height: 100%;
  overflow: hidden;
}

.nv-hero__summary {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.nv-hero__title {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* The section carries production's `.hero` class as well as ours, and the base sheet gives
   that class a 415px box — which is why the control row, positioned from the section's
   bottom, landed 15px BELOW the card and looked detached. The section is exactly the card
   now, so `bottom` measures from the card's own floor. */
.nv-hero {
  height: var(--nv-hero-h);
  min-height: 0;
  padding: 0;
}

/* --- three corrections found by looking at the render, 2026-07-27 -----------------
   1. The headline clamped to three lines but the panel only has room for two once the
      summary and the foot take theirs, so the third line was sliced in half by the
      panel's overflow. Two lines is what the space actually affords.
   2. The date carried a separator from its old life in the meta row; alone in the foot
      that "·" was left hanging in front of it.
   3. The date and the control row sat on different lines. They share one now: both are
      pinned to the card's floor, so the foot reads as a single row — date left,
      dots and arrows right, which is the mockup's arrangement. */
.nv-hero__title { -webkit-line-clamp: 2; }

.nv-hero__date::before,
.nv-hero__date::after { content: none; }

.nv-hero__panel { position: relative; }

.nv-hero__foot {
  /* Measured: the panel is 342px wide and its padding leaves 262px. Date (120) + dots (60)
     + arrows (80) do not fit on one row — the active dot overlapped the date's last
     characters. So the date does not live in the foot: it sits directly under the
     discipline, on the same left line, which is the owner's own first suggestion
     ("выровнять по отношению к дисциплине"). The foot keeps the mockup's dots and arrows. */
  margin-top: var(--ds-s-1);
  margin-bottom: var(--ds-s-4);
  order: -1;                 /* directly after the meta row, before the headline */
}

/* Explicit order so the date lands under the meta rather than wherever source order puts
   it — the panel is a flex column and the foot is authored after the summary. */
.nv-hero__meta { order: 0; }
.nv-hero__foot { order: 1; }
.nv-hero__title { order: 2; }
.nv-hero__summary { order: 3; }

/* The panel is a flex COLUMN, so its children shrink under pressure — and the headline was
   losing 1.6px of its three-line box (94px against the 95.6 three lines need). That is all
   it takes for `-webkit-line-clamp` to decide the text does not fit and add an ellipsis, so
   every headline read as truncated while the real shortfall was one and a half pixels.
   Nothing here shrinks: if the copy genuinely does not fit, the clamp should be what cuts
   it, at a whole line, not the layout shaving a fraction off the box. */
.nv-hero__meta,
.nv-hero__foot,
.nv-hero__title,
.nv-hero__summary { flex: 0 0 auto; }

/* the date belongs to the discipline above it, not to the headline below */
.nv-hero__meta { margin-bottom: 0; }
.nv-hero__foot { margin-top: var(--ds-s-1); margin-bottom: var(--ds-s-3); }

/* --- headline room, settled 2026-07-27 (height revised, see the note below) --------
   Owner: the headline must not be cut. Measured against the five live banner titles at
   the panel's 262px: four of the five need THREE lines at 28px, so a two-line clamp was
   truncating 80% of them — not an edge case.

   Three lines at 28px need 95.6px, and the card at the mockup's 335 could not give it
   without either truncating the summary or overflowing the panel (both measured). So the
   card takes 370: the one arrangement where the headline, the summary and the controls
   all fit with nothing cut and nothing hidden. 35px more than the mockup, which is the
   price of not truncating four headlines out of five. */
.nv-hero__title { -webkit-line-clamp: 3; }
.nv-hero__summary { -webkit-line-clamp: 2; }

/* Variant A's proportions, which until now lived only in the render harness: the card
   splits 58/42 rather than 50/50. That also keeps the artwork column at 472px against the
   548px sources editors upload — 1.16x of headroom, where a 50/50 split would give it more
   than it needs and a full-width hero would starve it (0.76x, visibly soft). */
.nv-hero { --nv-hero-split: 58%; }

/* The card goes BACK to the mockup's 335. Raising it to 370 for the third headline line
   was solving the wrong problem: with the headline no longer shrinking and the foot's stale
   padding gone, the panel's content measures 320px including padding, so it fits 335 with
   15px to spare — the extra 35 were never needed.

   And the height is not free. The artwork is `cover`, so the box's aspect decides the crop:
   472x335 is 1.41 against the 548x400 sources' 1.37 — near enough that almost nothing is
   lost. At 472x370 the box is 1.28, taller than the source, so it crops the sides and the
   photo reads as upright. The owner spotted that immediately. Card height is an image-crop
   decision here, not just a spacing one. */
.nv-hero { --nv-hero-h: 335px; }

/* With the longest live headline the summary's last line came within 2px of the control
   row. Both are clamped so neither can grow further, but 2px reads as a collision. The
   panel's top inset gives the buffer back — the meta does not need 40px above it. */
.nv-hero__panel { padding-top: var(--ds-s-7); }

/* --- date on the meta line, section dropped (owner picked option 2, 2026-07-27) -----
   The three-part meta could not hold a textual date: 262px available, discipline and
   section take 176 of it, and the date in its longest month ("26 СЕНТЯБРЯ 2026") is 135.
   Numbers fit but would give this one component a date format unlike the rest of the
   site, so the section label goes instead — the least informative of the three.
   Now: logo + discipline on the left, date pushed to the right edge of the panel. */
.nv-hero__meta {
  flex-wrap: nowrap;
  white-space: nowrap;
}

.nv-hero__date {
  margin-left: auto;
}

/* the foot is gone from the markup; neutralise its old spacing so nothing reserves room */
.nv-hero__foot { display: none; }

/* NO padding-top override on the content column. There was one here on 2026-07-27
   (`[data-page="home"] .content-wrapper { padding-top: 0 }`), added to make the two columns
   start on the same line — on the premise that the sidebar began flush under the branding
   banner. It does not: the base sheet gives `.content-wrapper` AND `.sidebar` the same
   `padding-top: 60px`, so the columns were already level, and zeroing one of them is what
   pulled the hero 60px above the matches block.

   Measured on preview, 1440, banner bottom at y=354:
     /matches, /publications, /tournaments   content 414 · sidebar 414   (60px, level)
     /en with the override                   content 354 · sidebar 414   (0 vs 60)
   So 60px under the banner is the site's value, on every page, in both columns, and the
   home page was the only one out. Nothing is scoped here now — the base is already right. */

/* --- caught by align.py on the deployed page, 2026-07-27 --------------------------
   The local harness only ever rendered ONE slide, so neither of these could show up
   there. On the real page with five slides:

   1. The panel centred its content, so a slide whose headline takes two lines started
      its meta 26.5px away from one whose headline takes three — the meta, the logo, the
      title and the summary all drifted between slides. Everything is anchored to the
      top now; the slack collects at the foot, where the controls already sit.
   2. The hero's own bottom margin was 40px against the site's 60px between sections,
      which put a second spacing value on the home page an hour after the whole site was
      brought to one. */
.nv-hero__panel { justify-content: flex-start; }
.nv-hero { margin-bottom: var(--ds-sec-above, 60px); }

/* The summary still moved between slides, because it follows a headline that takes two
   lines on one banner and three on the others — the same variable-line-count cause as
   everywhere else this wave. Reserve the three lines the headline is already allowed, so
   the summary starts at the same offset on every slide. It costs nothing on a slide with
   a short headline: the card's height is fixed, so that space exists either way. */
.nv-hero__title {
  min-height: 96px;
  min-height: 3lh;
}

/* --- the wheel belongs to the page, not to the hero (owner, 2026-07-28) ------------
   Reported as "страницу тяжело листать вниз". Measured with a trusted wheel event
   (`tools/wheel.py`, 1440): pointer over the hero, wheel +300 -> the page moved 0. The
   same wheel anywhere else moved it 300. Not a stutter — the gesture was absorbed whole.

   Cause, isolated one variable at a time on a FRESH page load per variant (sequential
   probes on one page latch the wheel to whatever scrolled last and report false greens):

     overflow-x  hidden / auto  -> a scroll container -> page Δ 0    swallowed
     overflow-x  clip / visible -> not a container    -> page Δ+300  fine

   `scroll-snap-type` and `overscroll-behavior-x` change nothing at all — `none`,
   `contain` and `auto` all measure identically. It is the scroll container itself:
   Chrome routes a vertical wheel to the innermost scroll container under the cursor,
   this one cannot move vertically, and the delta dies there instead of reaching the page.

   So the box must stop being a scroll container where a wheel exists. `clip` and not
   `hidden` — `hidden` still creates one. That costs the transport: a clipped box ignores
   `scrollTo`, so nvHeroSlider translates the track instead, chosen at runtime by reading
   this very property. Touch keeps the native scroller and its swipe: there is no wheel
   there, and `(pointer: coarse)` never matches this block.

   Old Safari (<16) has no `overflow: clip`; the declaration is dropped, the box stays a
   scroller, and the slider keeps using `scrollTo` because the transport check reads the
   computed value. Degrades to today's behaviour rather than breaking. */
@media (hover: hover) and (pointer: fine) {
  .nv-hero__viewport { overflow-x: clip; }
}

/* --- the card collapsed to 176px on a phone (owner, 2026-07-28) --------------------
   Measured at 390: section 358 wide, card 176. At 1440 the same chain gives 816 in 816.

   Cause, and it is structural rather than a breakpoint mistake: the section carries
   production's `.hero` class, which is `display: flex`, so `.nv-hero__viewport` is a FLEX
   ITEM at `flex: 0 1 auto` — a width taken from its own content, never from its parent.
   Nothing in this file ever told it to fill the section. On desktop the intrinsic
   calculation happens to land on the full width, so the omission was invisible; at <=767px
   the stacked rules (slide `height: auto`, media `aspect-ratio: 16/9`) change what the
   intrinsic width resolves to and the item shrinks to 176.

   `width: 100%` and not `flex: 1` — the item must be exactly the section at every width,
   not "whatever is left", and this reads as the intent rather than as a flex trick. */
.nv-hero__viewport { width: 100%; }

/* Second half of the same bug. The <=767px block above sets the slide to `height: auto`
   for the stacked card, but `height: var(--nv-hero-h)` was later declared UNCONDITIONALLY
   on both the section and the viewport (the 2026-07-27 appendices, added below the media
   blocks and so winning over them). A phone was therefore stacking its content inside a box
   frozen at 335px. The height belongs to the desktop card only; stacked, the card is as tall
   as its artwork plus its panel. */
@media only screen and (max-width: 767px) {
  .nv-hero,
  .nv-hero__viewport { height: auto; }

  /* And the third piece, which is what actually produced the 176px. The <=767px block
     above takes the control row out of `position: absolute` so it can sit below the card
     — but the section is `display: flex`, so a static child becomes a FLEX ITEM on the
     same row and takes its width from the card: measured 176 + 182 = 358, the section
     exactly. The row is meant to be UNDER the card, which in a flex section means the
     section has to stack. */
  .nv-hero { flex-direction: column; }
}

/* ===== chrome.css ===== */
/* =========================================================================
 * chrome.css — the site header. Wave 1 of the full-site redesign.
 *
 * Appended after navi-ds.css, so it consumes the shared tokens.
 *
 * THE BAR STAYS DARK.
 *   A white bar was built first, because the owner's mockup draws one. Seen
 *   rendered, the owner rejected it: the dark bar is the club's face and the
 *   light version read as a different site. The mockup is the canon for
 *   composition and type, not for this. Nothing here touches the bar's
 *   background, its height, or the sponsor strip.
 *
 * WHAT THIS FILE CHANGES — four things:
 *   1. Shop becomes a button instead of a coloured word (from the mockup).
 *   2. The current section gets a yellow underline.
 *   3. Navigation type moves to the mockup's size, weight and tracking.
 *   4. Search, account and burger are redrawn as one icon set (see the bottom).
 *
 * WHAT IT DELIBERATELY LEAVES ALONE
 *   The bar's background and height, the sponsor strip, the logo — all as
 *   production has them. The language switcher stays the dropdown it has always
 *   been: an inline row of locales was built and the owner rejected it.
 *
 * A TRAP WORTH RECORDING
 *   `.switch-language` is display:none below 768px on production — on a phone
 *   the locales live inside the burger menu. An unscoped `display:flex` here
 *   forced the row back into the mobile bar, where it collided with the account
 *   icon and threw every control off its centre line. That inline row is gone,
 *   but the lesson stands: any rule here that changes `display` is scoped to
 *   >=768px, because the mobile bar carries a different set of controls.
 *
 * DEVIATIONS FROM THE MOCKUP — the same two the approved batch already took:
 *   Type: the mockup ships Barlow / Barlow Condensed; the site ships `Navi` and
 *   `ProximaNova`. Sizes, weights and tracking are ported, families are not.
 *   Yellow: the mockup's #FFE500 gives way to the brand #FFEE00 (--ds-yellow).
 * ========================================================================= */

@media (min-width: 768px) {

  /* --- navigation type ---------------------------------------------------- */
  /* Size, weight and tracking are measured from the owner's mockup. The colour
   * is NOT: the mockup is dark-grey-on-white, and an earlier pass translated
   * that to a muted grey on the dark bar so the active item would stand out.
   * That dimmed the whole navigation to buy a contrast the yellow underline
   * below already provides. Production's near-white is kept. */
  .header .header__bottom-nav .header__bottom-link {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .12em;
    transition: color var(--ds-d-micro) var(--ds-e-exit);
  }
  @media (hover: hover) {
    .header .header__bottom-nav .header__bottom-link:hover { color: var(--ds-yellow); }
  }

  /* The active section earns a bar, not only a brighter grey: at 14.5px a shift
   * between two light tones is too quiet to locate where you are. */
  .header .header__bottom-nav .header__bottom-link.active {
    position: relative;
  }
  .header .header__bottom-nav .header__bottom-link.active::after {
    content: "";
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: 0;
    height: 3px;
    background: var(--ds-yellow);
  }

  /* The base sheet has its own indicator: a 2px #FFF136 bar on the label's own
     `span::after`, shown at `opacity: 1` for `.active` and on hover. With the bar
     above it that renders as TWO underlines a few pixels apart, in two different
     yellows. The bar at the bottom edge is the one that reads as a tab indicator,
     so the text-hugging one goes; hover keeps the yellow label colour set above.
     Scoped to the nav — the same class in the burger menu keeps its own bar. */
  .header .header__bottom-nav .header__bottom-link span::after,
  .header .header__bottom-nav .header__bottom-link:hover span::after,
  .header .header__bottom-nav .header__bottom-link.active span::after { content: none; }

  .header .header__bottom-nav .header__bottom-list-link {
    transition: color var(--ds-d-micro) var(--ds-e-exit);
  }

  /* --- shop: a filled button ---------------------------------------------- */
  /* Yellow fill with dark ink, not the mockup's dark fill with yellow ink — on a
   * dark bar that inverted pairing is nearly invisible. This is also how the
   * mockup itself treats the shop button down in the footer. */
  /* The ink needs !important and the span needs naming. navi-overrides.css
   * section 1 ("единый брендовый жёлтый") pins this element to
   * `color: var(--navi-yellow) !important`, from the era when SHOP was yellow
   * text on the dark bar. Filling the button yellow without winning that
   * declaration paints yellow text on a yellow field: the button renders as an
   * empty rectangle. The label also lives in a <span>, which inherits the same
   * colour, so both have to be addressed.
   * This is the one !important in this file, and it exists only to beat an
   * existing one — the exception navi-ds.css allows. */
  .header .header__bottom-links .header__bottom-link_btn,
  .header .header__bottom-links .header__bottom-link_btn span {
    color: var(--ds-ink-brand) !important;
  }
  .header .header__bottom-links .header__bottom-link_btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 9px 16px;
    border-radius: 5px;
    background-color: var(--ds-yellow);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .16em;
    transition: background-color var(--ds-d-micro) var(--ds-e-exit),
                transform var(--ds-d-micro) var(--ds-e-exit);
  }
  @media (hover: hover) {
    .header .header__bottom-links .header__bottom-link_btn:hover {
      background-color: var(--ds-yellow-hover);
      transform: translateY(-1px);
    }
  }
  .header .header__bottom-links .header__bottom-link_btn:active { transform: translateY(0); }

  /* Kill the nav hover underline inside the button. The base sheet draws a 2px
   * #FFF136 bar under every `.header__bottom-link` span on hover — right for a
   * word on the dark bar, meaningless on a yellow field, where it reads as a
   * pale stripe across the button. The button already answers the cursor by
   * darkening and lifting. */
  .header .header__bottom-links .header__bottom-link_btn span::after,
  .header .header__bottom-links .header__bottom-link_btn:hover span::after {
    content: none;
  }

}

/* Keyboard users need a visible position on a bar with this little chrome. */
.header .header__bottom-link:focus-visible,
.header .header__bottom-list-link:focus-visible,
.header .switch-language__btn:focus-visible,
.header .header__search:focus-visible,
.header .login__link:focus-visible {
  outline: 2px solid var(--ds-yellow);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .header .header__bottom-link,
  .header .header__bottom-list-link,
  .header .header__bottom-link_btn { transition: none; }
}

/* =========================================================================
 * SECTION HEADINGS — one yellow bar, everywhere.
 *
 * The audit found four different treatments living side by side:
 *   • no bar at all      — home (news, tournaments, videos), /publications,
 *                          /tournaments
 *   • 3x40px #FFF136     — the legacy `.main-title_sidebar` bar, absolutely
 *                          positioned 25px out to the left of its heading
 *   • 5x22px #FFEE00     — the matches sidebar's live heading
 *   • 5x24px #FFEE00     — /matches and the player page
 * Inside one sidebar, "NAVI MATCHES" had the new bar while "UPCOMING MATCHES"
 * and "MATCH HISTORY" directly under it still had the legacy one.
 *
 * This states the canon once, on the shared `.main-title`: 5px, brand yellow, as
 * a flex item rather than a floating absolute. `.main-title` is already
 * `display:flex; align-items:center` in the base sheet, so the bar simply becomes
 * its first child and no heading moves except the two that had their bar hanging
 * outside the text.
 *
 * The two approved variants — `.match-list-*` at 5x24 and the live sidebar
 * heading at 5x22 — carry more classes and keep winning on specificity. That is
 * deliberate: their pixels were signed off, and 22 vs 24 next to a differently
 * sized heading is a distinction nobody can see. The point of this rule is that
 * every heading now has the same 5px brand bar, not that a measurement matches.
 * ========================================================================= */
.main-title::before {
  content: "";
  flex: 0 0 auto;
  /* the legacy sidebar bar was absolute; these two reset it into the flow */
  position: static;
  background: var(--ds-yellow);
}
/* size, leading, gap, bar metrics and the space below: see the second pass below */

/* =========================================================================
 * ICONS — search, account, burger, redrawn as one set.
 *
 * The problem was not that the old icons were ugly in isolation; it was that
 * they shared no geometry. The magnifier rendered at 18x18, the account mark at
 * 31x31 — a 1.7x difference — on different stroke weights, so three controls
 * sitting 20px apart read as three unrelated drawings.
 *
 * These are one 24-unit grid, one 2px stroke, round caps and joins. The
 * magnifier's handle runs a true 45 degrees into the circle instead of the old
 * soft stub, and the account mark is built from a straight-shouldered bust
 * rather than a blob inside a ring — closer to the hard angles of the logo.
 *
 * HOW, given the markup is not ours: the search and account icons are drawn by
 * the frozen Brights bundle as <svg><use href="#icon-..."></svg>. Rather than
 * fight that, the original artwork is hidden and the same element is painted
 * with a CSS mask. The element keeps its box, so nothing in the bar shifts.
 * ========================================================================= */
.header .header__search .icon-search use,
.header .login .login__link .icon-login use,
.header .header__search .icon-search path,
.header .login .login__link .icon-login path { display: none; }

.header .header__search .icon-search,
.header .login .login__link .icon-login {
  width: 21px;
  height: 21px;
  background-color: #F5F5F7;
  transition: background-color var(--ds-d-micro) var(--ds-e-exit);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.header .header__search .icon-search {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2210.5%22%20cy%3D%2210.5%22%20r%3D%226.5%22%2F%3E%3Cpath%20d%3D%22M15.6%2015.6%20L21%2021%22%2F%3E%3C%2Fsvg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2210.5%22%20cy%3D%2210.5%22%20r%3D%226.5%22%2F%3E%3Cpath%20d%3D%22M15.6%2015.6%20L21%2021%22%2F%3E%3C%2Fsvg%3E");
}
.header .login .login__link .icon-login {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228%22%20r%3D%224%22%2F%3E%3Cpath%20d%3D%22M4.5%2020v-1a5%205%200%200%201%205-5h5a5%205%200%200%201%205%205v1%22%2F%3E%3C%2Fsvg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228%22%20r%3D%224%22%2F%3E%3Cpath%20d%3D%22M4.5%2020v-1a5%205%200%200%201%205-5h5a5%205%200%200%201%205%205v1%22%2F%3E%3C%2Fsvg%3E");
}
@media (hover: hover) {
  .header .header__search:hover .icon-search,
  .header .login .login__link:hover .icon-login { background-color: var(--ds-yellow); }
}

/* Burger: same stroke weight and cap treatment as the two above, so the mobile
 * bar is the same set. The base sheet builds it from one span plus its two
 * pseudo-elements. */
.header .header__bottom-hamburger .hamburger__line,
.header .header__bottom-hamburger .hamburger__line::before,
.header .header__bottom-hamburger .hamburger__line::after {
  height: 2px;
  border-radius: 2px;
  background-color: #F5F5F7;
  transition: background-color var(--ds-d-micro) var(--ds-e-exit);
}
@media (hover: hover) {
  .header .header__bottom-hamburger:hover .hamburger__line,
  .header .header__bottom-hamburger:hover .hamburger__line::before,
  .header .header__bottom-hamburger:hover .hamburger__line::after {
    background-color: var(--ds-yellow);
  }
}

@media (prefers-reduced-motion: reduce) {
  .header .icon-search,
  .header .icon-login,
  .header .hamburger__line,
  .header .hamburger__line::before,
  .header .hamburger__line::after { transition: none; }
}

/* =========================================================================
 * MOBILE MENU
 *
 * The panel opened to a list that ended around the middle of the screen with
 * the bottom 40% empty, every row weighted the same, and shop sitting in the
 * list as though it were another section.
 *
 * Three changes: the rows tighten and gain a current-section marker, shop
 * leaves the list for a button at the foot, and the social accounts fill the
 * space below it. Markup for the foot is in components/client/menu.blade.php.
 * ========================================================================= */
@media (max-width: 767px) {

  /* Rows: closer together, and the label carries the weight instead of the
   * whitespace. 56px keeps a comfortable touch target while fitting the whole
   * list plus the foot on one screen. */
  /* Padding, not flex. Turning the row into a flex container centred the label:
   * the text becomes an anonymous flex item and something in the base sheet
   * centres it despite a computed justify-content of flex-start. Production
   * lays these out as blocks and they sit left, which is what a list wants —
   * so the height comes from padding instead. */
  .menu .menu-nav__item {
    padding-top: 17px;
    padding-bottom: 17px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .1em;
  }

  /* Which section you are in was invisible: every row looked identical. */
  .menu .menu-nav__item.is-current {
    color: var(--ds-yellow);
    box-shadow: inset 3px 0 0 var(--ds-yellow);
    padding-left: 14px;
  }

  /* --- the second level, in place (editor, 2026-07-31) ---------------------
     A parent row is a <button> now, so it needs the browser's own button
     styling taken off it before the row rules above can be seen at all. */
  .menu .menu-nav__item_parent {
    display: block;
    appearance: none;
    -webkit-appearance: none;
    background: none;
    border: 0;
    border-top: 1px solid rgba(238, 237, 239, .3);
    border-radius: 0;
    font-family: inherit;
    text-align: left;
    cursor: pointer;
  }

  /* The chevron the drawer used pointed RIGHT — "this leaves the page". It opens
     downwards now, so it points down, and turns up while the section is open.
     Same pseudo-element, same 8px box, only the angle changes. */
  .menu .menu-nav__item_parent::after { transform: rotate(45deg); }
  .menu .menu-nav__item_parent[aria-expanded="true"]::after {
    transform: rotate(-135deg);
    top: calc(50% - 1px);
  }
  .menu .menu-nav__item_parent[aria-expanded="true"] { color: var(--ds-yellow); }
  .menu .menu-nav__item_parent[aria-expanded="true"]::after { border-color: var(--ds-yellow); }

  /* The list itself. Height is animated from a pixel value the script measures —
     NOT `grid-template-rows: 0fr -> 1fr`, which does not interpolate here and
     gives the jerk this layer already learned about once (2026-07-19). One
     animator: the script sets the value, this transition carries it. */
  .menu .menu-nav__sub {
    height: 0;
    overflow: hidden;
    margin: 0;
    padding: 0;
    list-style: none;
    background: rgba(0, 0, 0, .22);
    transition: height .22s ease;
  }

  /* One step down from the row that opens it — same family, same case, lighter
     and smaller, indented past the parent's label. The drawer's links were
     14px/500 and NOT uppercase, which is what read as "другие шрифты". */
  .menu .menu-nav__sub-link {
    display: block;
    padding: 13px 16px 13px 30px;
    color: rgba(245, 245, 243, .74);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: .1em;
    line-height: 1.42;
    text-transform: uppercase;
    transition: color .16s ease;
  }
  .menu .menu-nav__sub-item + .menu-nav__sub-item .menu-nav__sub-link {
    border-top: 1px solid rgba(238, 237, 239, .12);
  }
  .has-hover .menu .menu-nav__sub-link:hover,
  .menu .menu-nav__sub-link:focus-visible { color: var(--ds-yellow); }

  /* --- the foot ----------------------------------------------------------- */
  .menu .menu-foot {
    padding: 22px 0 30px;
    border-top: 1px solid rgba(255, 255, 255, .1);
    display: flex;
    flex-direction: column;
    gap: 20px;
  }

  .menu .menu-foot__shop {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    border-radius: 6px;
    background-color: var(--ds-yellow);
    color: var(--ds-ink-brand) !important;   /* beats the brand-yellow !important, see the header */
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .16em;
    text-decoration: none;
    transition: background-color var(--ds-d-micro) var(--ds-e-exit);
  }
  .menu .menu-foot__shop:active { background-color: var(--ds-yellow-hover); }

  /* Exactly the desktop footer's treatment: the symbol carries its own circle,
   * and grayscale(1) flattens the brand colours to one tone. An earlier pass
   * concluded CSS could not monochrome these icons because each symbol bakes its
   * colour in as a presentation attribute — that was wrong. A filter acts on the
   * rendered result, so it does not care, and the footer was already doing it. */
  /* Four across, two rows. On one row eight 40px marks left 4px between them and
   * the block read as a cramped strip; split in two it gets room and the marks
   * can grow to 48px, which is also a proper touch target. A fixed four-column
   * grid rather than a wrapping row, so the second line stays aligned with the
   * first instead of centring under it. */
  .menu .menu-foot__social {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px 8px;
    justify-items: center;
  }
  .menu .menu-foot__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    transition: opacity var(--ds-d-micro) var(--ds-e-exit);
  }
  .menu .menu-foot__social-link svg {
    width: 48px;
    height: 48px;
    fill: #FFFFFF;
    filter: grayscale(1);
  }
  .menu .menu-foot__social-link:active { opacity: .7; }

  /* --- language: a control, not another list row --------------------------- */
  /* The original switcher is a drawer: absolutely positioned, translated off
   * canvas, with its own white panel. Flattening it into a row took three
   * attempts and each one uncovered another layer of the drawer, so the foot
   * now carries its own markup and the drawer is hidden here. */
  .menu .menu-language-switcher--legacy { display: none; }

  .menu .menu-foot__lang { margin-bottom: 4px; }
  .menu .menu-foot__caption {
    margin-bottom: 10px;
    color: var(--ds-ink-3);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .22em;
    text-transform: uppercase;
  }
  .menu .menu-foot__lang-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }
  .menu .menu-foot__lang-item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 54px;
    min-height: 38px;
    padding: 0 12px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 6px;
    color: #D9D9D4;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
    text-decoration: none;
  }
  .menu .menu-foot__lang-item.is-active {
    border-color: var(--ds-yellow);
    background-color: var(--ds-yellow);
    color: var(--ds-ink-brand);
  }

  /* The panel is a column so `margin-top:auto` on the foot can push it down. */
  .menu .menu__wrapper {
    display: flex;
    flex-direction: column;
    min-height: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .menu .menu-foot__shop,
  .menu .menu-foot__social-link { transition: none; }
}

/* =========================================================================
 * FOOTER
 *
 * The footer was already close, so this is a light pass — three things, all
 * CSS, no markup touched.
 *
 * The social icons are left exactly as production draws them (40px marks in
 * their own grey circles, grayscale(1)). The owner's mockup replaces them with
 * labelled pills; the owner asked to keep the icons.
 * ========================================================================= */

/* 1. "Спасибо, что вы с нами!" exists in the markup and is display:none, so the
 *    social row sits under nothing. The mockup gives that row a heading, and the
 *    string is already translated in four locales — it only needed showing. */
.footer .footer__main-social {
  display: flex;
  flex-direction: column;     /* heading above the row, not squeezed beside it */
  align-items: flex-start;
}
.footer .footer__main-social-info {
  display: block;
  width: auto;
  max-width: none;   /* it was sized for the old side-by-side layout and wrapped the heading */
  margin-bottom: 16px;
}
.footer .footer__main-social-info h4 {
  margin: 0;
  color: var(--ds-card);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

/* 2. Desktop keeps production's full-width distribution (owner's call) — the row
 *    spans the column and the eight marks sit evenly across it. */
.footer .footer__main-social-links {
  justify-content: space-between;
  flex-wrap: wrap;
}

/* 2b. …but only above 1200px, and the gap in rule 2 is why. Below 1200 the base sheet
 *     sizes every mark at `width: 25%` — four per row exactly, with nothing between them —
 *     so the 24px this row now carries pushed the fourth out and the eight broke
 *     3 + 3 + 2, each mark a 183-291px box around a 40px icon, in a block 258px tall.
 *     That is the same "reads as an accident" the phone rule below was written to kill,
 *     and this row is in the footer of every page on the site.
 *
 *     Same answer as the phone, for the same reason: a fixed four-column grid, which
 *     ignores the 25% instead of fighting it. Measured at 1199/1024/900/800/768 — 4 + 4,
 *     marks back to their 40px, block 258px -> 100px. Nothing changes at 1200 and above,
 *     and the phone rule below still owns everything under 768. */
@media (min-width: 768px) and (max-width: 1199px) {
  .footer .footer__main-social-links {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px 24px;
    justify-items: center;
  }
  .footer .footer__main-social-link {
    width: auto;
    margin-bottom: 0;   /* the base sheet's 30px, now that the grid owns row spacing */
  }
}

/* 3. Shop was a yellow word standing where the other three columns have a grey
 *    heading, so its column read as empty. As a button it matches the header and
 *    the mobile menu, and the column has something in it. */
.footer .footer__main-section_link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 22px;
  border-radius: 5px;
  background-color: var(--ds-yellow);
  color: var(--ds-ink-brand) !important;   /* beats navi-overrides' brand-yellow !important */
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .16em;
  text-decoration: none;
  transition: background-color var(--ds-d-micro) var(--ds-e-exit),
              transform var(--ds-d-micro) var(--ds-e-exit);
}
@media (hover: hover) {
  .footer .footer__main-section_link:hover {
    background-color: var(--ds-yellow-hover);
    transform: translateY(-1px);
  }
}
.footer .footer__main-section_link:active { transform: translateY(0); }

@media (max-width: 767px) {
  /* On a phone the columns stack, so a full-width button reads better than a
   * pill floating in its own row. */
  .footer .footer__main-section_link {
    display: flex;
    width: 100%;
  }
  /* Four per row on a phone. Left to wrap on width the eight marks broke 3 + 3 + 2,
   * which reads as an accident; a fixed grid keeps the second row aligned under
   * the first. */
  .footer .footer__main-social-links {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px 8px;
    justify-items: center;
  }
  .footer .footer__main-social-link { width: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .footer .footer__main-section_link { transition: none; }
}

/* =========================================================================
 * Editor review, 2026-07-26 — header and pagination.
 * ========================================================================= */

/* "Кнопка поиска как-то будто бы неестественно расположена". The magnifier began
   exactly where the yellow SHOP button ended — a measured 0px gap — while the
   language switcher and the account mark next to it sit 24px apart. So the icon
   read as if it were glued to the button rather than belonging to the icon group.
   The gap that already exists inside that group is simply extended in front of
   it. */
.header .header__bottom-container > .header__search-wrapp { margin-left: 22px; }

/* "При нажатой кнопке поиска если выбрать менюшку, она под ним."
   The open search panel and the nav dropdown are BOTH `position: absolute` with
   `z-index: auto`, so the winner was decided by document order — and the search
   panel is written after the navigation. Stacking is stated explicitly instead:
   the dropdown a visitor is actively pointing at goes over the panel. */
.header .header__bottom-nav .header__bottom-list { z-index: 30; }
.header .search-block-wrapp { z-index: 20; }

/* "При наведении мышки сюда квадрат меняется на кружок". Page numbers are 36x40
   rounded rectangles at rest and the hover rule swapped the radius to 50%, so the
   control changed shape under the cursor. Hover keeps the tint and the border and
   gives the shape back.

   The selector shape is copied from the rule it answers —
   `.page-link:not(.page-link_active):hover` — because `:not()` counts towards
   specificity and a plain `.page-link:hover` loses to it. */
.page-link:not(.page-link_active):hover,
.page-link:not(.page-link_active):focus-visible { border-radius: 7px; }

/* =========================================================================
 * PAGINATION — one strip, not eight tiles (owner, 2026-07-29, with a reference
 * screenshot; variant C of three shown).
 *
 * It was a row of detached 36x40 white tiles at an 8px gap, the current page a
 * yellow slab, spanning the full 816px column. Eight objects reading as eight
 * things. The reference is a single bordered strip divided by hairlines, which is
 * how the rest of this redesign states a group of cells — the standings table and
 * the match list both do exactly this — so the pagination stops being the one
 * component that argues with them.
 *
 * The owner chose the yellow current-page cell over the reference's black one, so
 * the only thing that changes about colour is that the cell no longer carries its
 * own border and radius.
 *
 * Width drops 816 -> 436px: the strip hugs its cells and is centred by
 * `margin: auto` rather than stretching, which is what stops it reading as a band.
 *
 * "Кнопки Назад Вперед будто бы сильно выделяются по стилю" (07-26) still holds and
 * is now answered by construction: PREV/NEXT are cells of the same strip, only
 * wider, and carry the label treatment the rest of the site's controls use.
 *
 * ⚠ NOT reachable from CSS: the reference shows a greyed-out PREV on page one. Vue
 * renders no prev element at all there (`<!---->`), so a disabled state cannot be
 * styled into existence — that is a front-end change, listed for later.
 * ========================================================================= */
.pagination {
  gap: 0;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
  border: 1px solid var(--ds-line);
  overflow: hidden;
}
.pagination .page-item + .page-item { border-left: 1px solid var(--ds-line); }

.pagination .page-link {
  min-width: 46px;
  height: 46px;
  border: 0 !important;
  background: var(--ds-card) !important;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--ds-ink);
  transition: background-color var(--ds-d-micro) var(--ds-e-enter);
}
.has-hover .pagination .page-link:hover {
  background: var(--ds-cell) !important;
  color: var(--ds-ink);
  /* The 07-26 rule above still hands a hovered cell `border-radius: 7px`, to answer an
     older bug where hover turned the tile into a circle. Inside a strip that would round
     one cell against a square frame. The sweep hides it today; this makes the strip
     correct on its own, so retiring the sweep cannot bring it back. */
  border-radius: 0;
}
/* the "…" gap is a disabled <button>, not a link — it must not look clickable */
.pagination .page-link[disabled],
.has-hover .pagination .page-link[disabled]:hover {
  background: var(--ds-card) !important;
  color: var(--ds-ink-3);
}
.pagination .page-link_active,
.has-hover .pagination .page-link_active:hover {
  background: var(--ds-yellow) !important;
  color: var(--ds-ink-brand) !important;
}

.pagination .pagination__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-width: 0;
  height: 46px;
  padding: 0 18px;
  border: 0 !important;
  border-radius: 0;
  background: var(--ds-card) !important;
  color: var(--ds-ink);
  font-size: var(--ds-t-small);
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  transition: background-color var(--ds-d-micro) var(--ds-e-enter);
}
@media (hover: hover) {
  .pagination .pagination__btn:hover { background: var(--ds-cell) !important; color: var(--ds-ink); }
}

/* The disabled PREV on page one. The element does not exist in the frozen component —
   nvPaginationGhostPrev clones NEXT and inserts it — so this styles the clone: muted like
   the "…" cell and inert under the cursor.

   ⚠ NO transform on the arrow, and that is the point. The sprite's arrow points LEFT by
   itself; `.pagination__btn_next svg { rotate(180deg) }` in the base is what turns it right.
   The clone drops the `_next` class, so it loses that rotation and is already correct — a
   `scaleX(-1)` "mirror" was added first and shipped an arrow pointing the wrong way. Caught
   in a zoomed screenshot, not in the computed styles, which reported the transform applied
   exactly as written. */
.pagination .pagination__btn[data-nv-ghost],
.has-hover .pagination .pagination__btn[data-nv-ghost]:hover {
  background: var(--ds-card) !important;
  color: var(--ds-ink-3);
  cursor: default;
}
@media (prefers-reduced-motion: reduce) {
  .pagination .page-link,
  .pagination .pagination__btn { transition: none; }
}

/* =========================================================================
 * SECTION LINKS — "All news →" instead of a full-width band.
 *
 * Owner, 2026-07-26, pointing at the mockup: every "show all" control becomes a
 * compact link with a yellow underline, sitting at the end of the section's
 * heading row rather than as a band under the list. The sidebar's own
 * "All matches" has been exactly this for a while, so this generalises an idiom
 * the site already had instead of inventing one.
 *
 * The treatment is stated here, once, for every wrapper the site uses for such a
 * control. WHERE the control sits is a template question, and only the home page
 * moves it into the heading in this pass — see the note in the runbook.
 *
 * `!important` on the background twice: navi-overrides pins these buttons to
 * `background: transparent !important` and floods them yellow on hover. Both are
 * right for a bordered button and wrong for a text link.
 * ========================================================================= */
.main-news__btn,
.main-tournament__btn,
.matches__btn {
  /* in a heading row this pushes the link to the far end; standing alone under a
     section it right-aligns it, which is where the sidebar's link already sits */
  display: flex;
  justify-content: flex-end;
  margin-left: auto;
}

.main-news__btn > .btn.gray,
.main-tournament__btn > .btn.gray,
.matches__btn > .btn.gray,
.player-videos .main-broadcasts__wrapper > .btn.gray {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  width: auto;
  min-width: 0;
  height: auto;
  min-height: 0;
  /* the 4px on the right is the room the arrow needs to travel on hover — without
     it the shift pushed the arrow past the block's edge, where it was clipped */
  padding: 0 4px 3px 0;
  border: 0;
  border-radius: 0;
  background: none !important;
  box-shadow: inset 0 -2px 0 var(--ds-yellow);
  color: var(--ds-ink);
  font-size: var(--ds-t-small);
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: none;
  transition: box-shadow var(--ds-d-micro) var(--ds-e-enter),
              color var(--ds-d-micro) var(--ds-e-enter);
}
.main-news__btn > .btn.gray .btn__text,
.main-tournament__btn > .btn.gray .btn__text,
.matches__btn > .btn.gray .btn__text,
.player-videos .main-broadcasts__wrapper > .btn.gray .btn__text {
  display: inline-flex;
  align-items: center;
  /* the arrow sat a word-space away from the label; closer, the pair reads as one
     control rather than a label with a symbol parked beside it */
  gap: 5px;
  color: inherit;
}
/* The arrow is DRAWN, not typed. It started as U+2192 from a system font stack,
   because the brand faces do not carry that glyph and a missing one renders as a
   tofu box — but that meant one character of the label came from a different
   typeface than the rest ("эти кнопки в наших нави шрифтах?", owner). A mask
   painted with `currentColor` has no typeface at all: it inherits the label's
   colour, scales with it, and is the same technique the header icons already use. */
.main-news__btn > .btn.gray .btn__text::after,
.main-tournament__btn > .btn.gray .btn__text::after,
.matches__btn > .btn.gray .btn__text::after,
.player-videos .main-broadcasts__wrapper > .btn.gray .btn__text::after {
  content: "";
  flex: 0 0 auto;
  /* Centred in the line box and then nudged DOWN onto the word's optical centre.
     The line box keeps room under the baseline for descenders, so its middle is
     above the ink's middle — `align-items: center` alone lands the arrow high.
     This used to carry `top: -1px`, a guess in the wrong direction: measured, the
     arrow sat 2.2px above the centre of the word. `--ds-optical` is the typeface's
     own correction, stated once in navi-ds.css. */
  align-self: center;
  position: relative;
  top: var(--ds-optical);
  width: 15px;
  height: 11px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 12'%3E%3Cpath d='M1 6h12M9.5 2.5 13 6l-3.5 3.5' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 12'%3E%3Cpath d='M1 6h12M9.5 2.5 13 6l-3.5 3.5' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
  transition: transform var(--ds-d-state) var(--ds-e-enter);
}
@media (hover: hover) {
  .main-news__btn > .btn.gray:hover,
  .main-tournament__btn > .btn.gray:hover,
  .matches__btn > .btn.gray:hover,
  .player-videos .main-broadcasts__wrapper > .btn.gray:hover {
    background: none !important;
    box-shadow: inset 0 -2px 0 var(--ds-ink);
    color: var(--ds-ink);
  }
  .main-news__btn > .btn.gray:hover .btn__text::after,
  .main-tournament__btn > .btn.gray:hover .btn__text::after,
  .matches__btn > .btn.gray:hover .btn__text::after,
  .player-videos .main-broadcasts__wrapper > .btn.gray:hover .btn__text::after { transform: translateX(4px); }
}
@media (prefers-reduced-motion: reduce) {
  .main-news__btn > .btn.gray,
  .main-tournament__btn > .btn.gray,
  .matches__btn > .btn.gray,
  .player-videos .main-broadcasts__wrapper > .btn.gray,
  .main-news__btn > .btn.gray .btn__text::after,
  .main-tournament__btn > .btn.gray .btn__text::after,
  .matches__btn > .btn.gray .btn__text::after { transition: none; }
}

/* "В подвале сайта кнопка магазин выглядит неестественно" (owner, 2026-07-26).
   The shop link is one of the footer's four columns, and it was painted as a
   239x44 yellow slab filling that column — beside three 20px text headings it read
   as a banner rather than a button. Sized to its label and pinned to the top of the
   column, it sits on the same line the headings start on.
   Desktop only: below 768px those columns are accordion rows, where a full-width
   control is exactly right. */
@media (min-width: 768px) {
  .footer .footer__main-sections > .footer__main-section_link {
    align-self: flex-start;
    width: auto;
    min-width: 0;
    height: auto;
    padding: 10px 18px;
  }
}

/* Footer ink, same pass. Two more greys were doing secondary work down here —
   #707070 on the social labels and #9C9A9D on the column headings — neither of
   which is the AA-safe secondary the system declares for dark surfaces. */
.footer .footer__main-social-link span { color: var(--ds-ink-on-dark); }
.footer .footer__main-title { color: var(--ds-ink-on-dark); }

/* The footer's bottom bar — copyright, the legal links and the contact address —
   was #707070 on the near-black bar: about 2.4:1, under the 4.5 floor, and the one
   place on the page where the text is a legal notice. --ds-ink-on-dark is the
   system's AA-safe secondary for exactly this ground. */
.footer .footer__bottom-copyright-text,
.footer .footer__bottom-privacy,
.footer .footer__bottom-privacy a { color: var(--ds-ink-on-dark); }

/* The #NAVINATION button's label was #27262B while every other yellow button on
   the site uses the brand near-black. */
.footer .footer__header-content .btn .btn__text { color: var(--ds-ink-brand); }

/* Type scale, second pass (owner, 2026-07-26). The footer ran its links and legal
   line at 12px and the shop button at 13 — neither a declared step. Both go to the
   system's small size. The two 28px headlines, the hero's and #NAVINATION's, stay:
   they are the page's display size, and the scale simply does not name it. */
.footer .footer__main-link,
.footer .footer__bottom-privacy,
.footer .footer__bottom-privacy a,
.footer .footer__bottom-copyright-text,
.footer .footer__main-social-link span,
.footer .footer__main-section_link { font-size: var(--ds-t-small); }

/* =========================================================================
 * ALIGNMENT PASS — 2026-07-27.
 * Owner, on the chrome: "в header разные расстояния до нашего лого и после
 * нашего лого к тексту", plus the footer's heads and rows.
 * ========================================================================= */

/* 1. The space either side of the logo.
 *
 *    Measured on the mark's ink, not its box — the SVG carries ~3.9px of
 *    transparent padding on each side, so the box lies about where the logo
 *    visually ends: 42.9px from the bar's content edge to the mark, 35.9px from
 *    the mark to the "НОВОСТИ" label. The nav's 10px margin plus the link's 22px
 *    padding never added up to the bar's own 39px inset.
 *
 *    The 7px comes out of the nav's width, not the page: `.header__bottom-nav`
 *    has `flex-grow: 1`, so it absorbs the margin and nothing to its right moves.
 *    Desktop only — below 768px the nav is display:none and the bar carries the
 *    hamburger instead. */
@media (min-width: 768px) {
  .header .header__bottom-nav { margin-left: 17px; }
}

/* 2. The footer's shop button sat below the column heads.
 *
 *    Pinning its box to the top of the column (07-26, "выглядит неестественно")
 *    aligned the box and not the label: a 44px button standing against a 20px
 *    heading line puts its text 12px lower than the three headings beside it.
 *    Half the difference, taken off the top, puts the label on the heads' line —
 *    which is the line the eye actually reads as "aligned". */
@media (min-width: 768px) {
  .footer .footer__main-sections > .footer__main-section_link {
    margin-top: -12px;   /* (44px button − 20px heading line) / 2 */
  }
}

/* 3. The three link columns drifted apart as they went down.
 *
 *    МЕНЮ runs its links at 14/21 and МЕДИА and О КЛУБЕ theirs at 12.5/18.75, so
 *    the rows were level at the first link and 6.8px apart by the fourth. The
 *    size difference is production's and it carries real hierarchy — the first
 *    column is the site nav — so it stays. Only the leading is shared, and that
 *    alone puts every row of all three columns back on one line. */
.footer .footer__main-link { line-height: 21px; }

/* 4. The YouTube mark shows its own badge, in the row's grey (owner, 2026-07-29).
 *
 *    History, because this went round twice. Every other symbol in the sprite is a 30x30
 *    viewBox drawing its own `<circle r="15">` badge; `#icon-youtube` is a 159x110 path,
 *    so it needed something behind it. It was first given a CSS disc in YouTube red, then
 *    that red was un-greyed to bring the brand through — and the answer to both was no:
 *    "он должен быть безцветным, как и был, просто форма должна быть такая… как на
 *    карточках с видео".
 *
 *    So the disc goes entirely and the symbol's OWN shape is what shows: `#icon-youtube`
 *    is already the YouTube badge — a rounded-rect path plus the white triangle, the same
 *    artwork the video cards use. It needs no backing, and it takes the row's
 *    `grayscale(1)` like every other mark, which is what "безцветным" means here.
 *
 *    Sizing and centring: with no padding the symbol letterboxes inside its 40px slot to
 *    40 x 27.7 (159:110) and centres on both axes by `preserveAspectRatio` alone — the
 *    badge is exactly as wide as its neighbours are round, which is what puts it on the
 *    row's rhythm. The old `padding: 7px 1px` was what pushed it off: it inset the SVG's
 *    viewport unevenly, so the mark sat ~1px left of the slot's centre and a size smaller
 *    than the circles beside it. */
.footer .footer__main-social-link .icon-youtube,
.menu .menu-foot__social-link .icon-youtube {
  background: none;
  padding: 0;
}

/* 5. Section heads: the link beside the heading sat on its own line.
 *
 *    Owner, 2026-07-27: "ты так и не выровнял 'все турниры' по отношению к
 *    названию секции — и везде чтобы это системно было выровнено". The boxes were
 *    already flush — `.main-title` is a flex row with `align-items: center` and the
 *    heading and the link share it — which is exactly why the earlier pass called
 *    this block aligned. It was measuring the wrong thing. Centring two texts of
 *    different size aligns their boxes and pulls their BASELINES apart: 21px
 *    heading against a 12.5px link put the link's baseline 9px below the
 *    heading's, and a baseline is what the eye reads as "on the same line".
 *
 *    `align-items: baseline` is the whole fix, and it is stated once on the shared
 *    class so every section head on the site inherits it — home, matches,
 *    publications, tournaments, media, and the sidebar heads. The yellow bar opts
 *    back out: it carries no text, so under baseline alignment its bottom edge
 *    would be treated as its baseline and it would sink to sit on the type.
 *
 *    Side effect, wanted: the row is no longer padded out to the tallest item, so
 *    a head with a link loses ~9px of height. The sidebar's live head is pinned to
 *    the news head so the two columns still start together — see match-redesign.css. */
/* The canon, second pass (2026-07-27). Baseline alignment fixed the heading against
 * the link beside it; it did not fix the heading against its own bar, and the owner
 * came back with the bar ringed: "желтая полосочка возле неё тоже пляшет вообще
 * криво... у нас просто каждый раз проблемы с этим, надо как-то это решить
 * системно".
 *
 * The reason it kept drifting is that the bar was a fixed 22px CENTRED — and what it
 * centred in was the flex line, whose height is 27px when the heading stands alone
 * and 39px when a link shares its row. Same bar, different height above the type, in
 * every section. On top of that the sidebar declared its own 18px heading, so the two
 * columns of the home page did not even set at the same size.
 *
 * The rule now: the bar is a piece of type. It is as tall as the capitals beside it
 * (`--ds-sec-bar-h`, .715em measured off Navi Bold) and `align-self: baseline` puts
 * its bottom margin edge on the text baseline — a flex item with no text baselines on
 * its bottom edge, which is exactly what is wanted here. Both are relative to the
 * heading's own font-size, so the bar cannot drift when a heading is resized; there is
 * no offset to keep in step.
 *
 * Every metric comes from navi-ds.css and is stated only there. If a section needs a
 * different heading, change the token — do not restate the size next to the component,
 * which is how this drifted in the first place. */
.main-title {
  align-items: baseline;
  gap: var(--ds-sec-gap);
  font-size: var(--ds-sec-size);
  line-height: var(--ds-sec-lh);
  margin-bottom: var(--ds-sec-below);
}
.main-title::before {
  align-self: baseline;
  width: var(--ds-sec-bar-w);
  height: var(--ds-sec-bar-h);
  transform: none;
}
/* Nothing inside a section heading carries its own vertical offset. The news
 * heading's link sits in a `.main-news__btn` wrapper with `margin-top: 21px` —
 * left over from when the row was centred and the link had to be pushed down. Under
 * baseline alignment that margin is counted above the baseline, so it dragged the
 * whole row's baseline 12px below the sidebar heading's and made the box 39px
 * instead of 27px. Alignment is the row's job; a child that also offsets itself is
 * how this drifts. */
.main-title > * { margin-top: 0; margin-bottom: 0; }
@media (max-width: 767px) {
  .main-title { font-size: var(--ds-sec-size-sm); }
}
/* The player page's recent-matches heading was the last copy of the old metrics. */
.player-recent-matches .main-title::before,
.match-list-block .main-title::before,
.match-list-section .main-title::before,
section.matches .matches_live .main-title_sidebar::before {
  align-self: baseline;
  width: var(--ds-sec-bar-w);
  height: var(--ds-sec-bar-h);
}

/* =========================================================================
 * SECTION HEADING — the yellow bar is retired (owner, 2026-07-27)
 *
 * "Возле каждого названия секции, слева от него, у нас стоит желтенькая черточка.
 *  Я хочу, чтобы мы ее убрали системно на всем сайте... Она мне не нравится."
 *
 * The bar was generated in five rules at three specificities — the canon block above,
 * three list-scoped copies, and the legacy absolutely-positioned sidebar variant — so a
 * single `.main-title::before` would have lost to three of them and the bar would have
 * survived on the match lists, the player's recent matches and the home sidebar. Every
 * one is named here instead, and `content: none` stops the pseudo being generated at
 * all, which also removes the flex gap that sat between it and the word.
 *
 * Result: the heading's word now starts on the heading's own left edge, flush with the
 * cards and rows beneath it — 122px on a 1440 content column, where it used to be 139.
 * `align.py --heads` now reports `bar none` and fails if any heading paints one again,
 * or if the word is still inset from the block's edge.
 *
 * The `--ds-sec-bar-*` tokens stay declared in navi-ds.css: the width/height rules that
 * reference them are inert without `content`, and keeping the names documents what the
 * component used to be rather than leaving dangling var() references.
 * ========================================================================= */
.main-title::before,
.main-title_sidebar::before,
.main-title_sidebar:before,
.match-list-block .main-title::before,
.match-list-section .main-title::before,
.player-recent-matches .main-title::before,
section.matches .matches_live .main-title_sidebar::before {
  content: none;
}

/* --- footer menu takes the header's type (editor, 2026-07-29) --------------------------
   "Возможно, сделать тут такие же шрифты, как в шапке". Measured both, and they differed
   in three properties at once, which is why the footer read as a different site:

     header link   14px / 700 / .12em / uppercase
     footer link   14px / 500 / normal / none

   Only the differences are restated; the size and family already matched. The column
   captions (MENU / MEDIA / ABOUT) keep their lighter treatment — they label the columns,
   they are not part of the menu.

   ⚠ Scoped to `.footer__main-sections`, the menu itself. The first version of this rule
   said `.footer a[href]` minus a few classes, and it reached the legal line in the
   copyright bar as well — "PRIVACY POLICY | TERMS OF SERVICE | …" came out 700-weight
   uppercase at .12em inside a 400-weight sentence, which the editor sent straight back
   ("в подвале сайта эти надписи слишком крупные теперь", 2026-07-29). A legal footnote is
   not navigation. The menu is a container, so scope to the container rather than
   subtracting whatever turns up wrong. */
.footer .footer__main-sections a[href]:not([class*="btn"]) {
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.footer .footer__main-title { font-weight: 400; letter-spacing: .04em; }

/* --- the NAVI mark in the copyright bar (editor, 2026-07-29) ---------------------------
   "Отодвинуть в подвале лого нави немного вправо, чтобы расстояние было одинаковым",
   with two red marks on the screenshot: the air left of the mark, and the gap from the
   mark to "Natus Vincere".

   Measured on the mark's INK, not its box — the sprite carries 2.27px of transparent
   padding on each side, the same trap the header pass hit:

     bar's left edge -> ink   29.3px     (the bar's own 27px inset, plus the sprite pad)
     ink -> copyright text    16.3px     (margin-left: 14px, plus the sprite pad again)

   The LEFT gap is therefore already the larger of the two, and moving the mark right
   would widen the difference rather than close it. The distances become equal by opening
   the gap to the text instead — and the mark keeps the column line it shares with
   МЕНЮ / МЕДИА / О КЛУБЕ directly above it, which is a real alignment and not worth
   trading for a perceived one. 27px is not a tuned number: it is the bar's own inset, so
   the mark ends up with exactly the same air on both sides.

   Desktop only. Below 768px the group is a centred column, where this margin separates
   nothing and only pushes the text off centre — see the rule under it. */
@media (min-width: 768px) {
  .footer .footer__bottom-copyright-text { margin-left: 27px; }
}

/* On mobile that same 14px was shifting the copyright block 7px right of the mark it is
   centred under: a margin moves the visual centre by half itself, which stays invisible
   until the children are measured instead of the container. */
@media (max-width: 767px) {
  .footer .footer__bottom-copyright-text { margin-left: 0; }
}

/* =========================================================================
 * OUR CHANNELS — the sidebar's YouTube list, brought into the system
 * (owner, 2026-07-29, choosing variant 3 of three shown).
 *
 * What it was, measured rather than judged:
 *
 *   channel name    18px / 500      <- --ds-t-h3, the SECTION HEADING size. Eight
 *                                      names each as loud as the "OUR CHANNELS"
 *                                      above them, in a 329px column.
 *   subscribers     14px #707070    <- not a system grey
 *   card border     1px #EFEFEF     <- canon is --ds-line #E6E6E2
 *   gap             9px             <- off the spacing scale
 *   avatar          48px, object-fit: fill   <- stretches a non-square source
 *   total caption   18px / 700      <- heading size again, for a caption
 *
 * Eight separately bordered cards also read as eight competing objects. The rest of
 * the site — the match list, the news list, the standings — states a list as ONE card
 * with hairline rows, so this becomes that. It is the same idiom, not a new one.
 *
 * CSS only, deliberately: this block renders on five page types from a single Blade
 * component, so nothing in the markup moves.
 *
 * The block loses 254px of height (888 -> 634) without losing a single channel.
 * ========================================================================= */

.our-channels__body {
  background: var(--ds-card);
  border: 1px solid var(--ds-line);
  overflow: hidden;
}
.our-channels__item {
  padding: var(--ds-s-4) var(--ds-s-5);
  background: transparent;
  border: 0;
  margin-bottom: 0 !important;      /* the base sets 9px on :not(:last-child) */
  transition: background .18s ease;
}
.our-channels__item:not(:last-child) { border-bottom: 1px solid var(--ds-line); }

/* A row inside a card must not lift — that reads as the card tearing. The hover moves
   to the row's own ground, which is what every other list on the site does. */
.has-hover .our-channels__item:hover {
  box-shadow: none;
  transform: none;
  background: var(--ds-cell);
}

.our-channels__item-img {
  width: 36px;
  height: 36px;
  margin-right: var(--ds-s-4);
  flex: 0 0 auto;
}
/* `cover`, not the base's `fill`: these are third-party avatars and not all are square.
   The circle itself is an exception in sharp.css, with the other full-round shapes. */
.our-channels__item-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.our-channels__item-title {
  font-size: var(--ds-t-strong);
  font-weight: 700;
  line-height: 1.25;
  color: var(--ds-ink);
}
.our-channels__item-count {
  font-size: var(--ds-t-small);
  font-weight: 400;
  line-height: 1.3;
  color: var(--ds-ink-3);
}

/* The total is the one thing in this block allowed to be loud. The digit tiles were the
   old odometer treatment; a single number in tabular figures is what the redesign uses
   for a headline figure, and it lets the caption drop to a caption. */
.our-channels__counter {
  margin-top: var(--ds-s-6);
  margin-bottom: var(--ds-s-8);
}
.our-channels__counter-value {
  margin-bottom: var(--ds-s-2);
  font-size: 36px;
  font-weight: 800;
  letter-spacing: -.015em;
  font-variant-numeric: tabular-nums;
  color: var(--ds-ink);
}
.our-channels__counter-value span {
  padding: 0 !important;
  margin: 0 !important;
  background: none !important;
}
.our-channels__counter-value span:nth-last-child(3),
.our-channels__counter-value span:nth-last-child(6) { margin-left: .26em !important; }
/* ⚠ The thousands separator is a 4x4 BLOCK on ::before, not a period, absolutely
   positioned against the old tile's padding box. With the tile gone it sat below the
   baseline as a subscript dot. Restated in em so it scales with the figure and seats
   on the baseline. */
.our-channels__counter-value span:nth-last-child(3)::before,
.our-channels__counter-value span:nth-last-child(6)::before {
  width: .1em;
  height: .1em;
  left: -.18em;
  bottom: .19em;
}
.our-channels__counter-text {
  font-size: var(--ds-t-small);
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ds-ink-3);
}

/* =========================================================================
 * "SHOW MORE" BAND — stated once, for every wrapper that carries one
 * (owner, 2026-07-29: "у нас разные ховера одних и тех же кнопок — нужно поправить
 * системно на всём сайте").
 *
 * AUDITED, not guessed. Every such control on eight page types was hovered for real and
 * its computed skin read in both states — the resting state is all a screenshot or
 * align.py can see, and the complaint was about the other one. Six distinct
 * (rest -> hover) contracts came back for what is two controls:
 *
 *   band, redesign   white + --ds-line   ->  #FFFEF4 + yellow border   /tournaments, match page
 *   band, legacy     transparent + ink   ->  SOLID YELLOW FILL         /watch  x2
 *   section link     yellow underline    ->  near-black underline      home x3, team, tournament
 *   section link     yellow underline    ->  yellow underline, 3px     home "All matches"
 *
 * The band was already written twice — `.nv-match__more` in match-page.css and a
 * deliberate restatement for `.tournament-section__btn` — and `/watch` was simply never
 * brought across. So this states the skin and the hover ONCE for all three wrappers
 * instead of adding a fourth copy. Geometry stays where each control declares it; this
 * layer loads after all of them, so it is the one that decides how they look.
 *
 * The divergent section link is fixed at its source instead: see the note where the rule
 * used to be in match-redesign.css.
 *
 * `!important` on the background, reluctantly: a baked overlay carries
 * `.btn.gray { background: transparent !important }`, which no specificity can reach.
 * An !important tie is settled by order and this layer is last, so it wins. Only the two
 * `.btn.gray` wrappers need it — `.nv-match__more` is a plain <button>.
 * ========================================================================= */
.nv-match__more,
.tournament-section__btn .btn.gray,
.media-section__btn .btn.gray {
  border: 1px solid var(--ds-line);
  border-radius: var(--ds-r-md);
  color: var(--ds-ink);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: none;
  transition: border-color .16s ease, background-color .16s ease;
}
/* The ink needs !important for the same reason the background does, and it is the last
   thing that kept these four apart: the base pins `.btn.gray { color: var(--nv-text-1)
   !important }` = #1A191D, while `.nv-match__more` — a plain <button>, not `.btn.gray` —
   took --ds-ink #141414. Two near-blacks, dE 4.06, in one control. Asked the browser which
   rule won rather than grepping for candidates. --ds-ink is the declared role for body-level
   ink on a light surface, so the three .btn.gray members are lifted to it. */
.tournament-section__btn .btn.gray,
.media-section__btn .btn.gray {
  background-color: var(--ds-card) !important;
  color: var(--ds-ink) !important;
}
.nv-match__more { background-color: var(--ds-card); }

/* /watch never had the band's geometry either — it was a full-width slab with a hard
   1px near-black outline.

   ⚠ The centring is not decoration here, it is the whole reason this block exists. The
   first version set `height: 44px; padding: 0` and stopped, on the assumption that each
   control already declared its own geometry — but /watch's button is `display: inline-block`
   and had been centring its label with padding alone. Removing the padding under a fixed
   height left the text pinned to the top edge of a 44px box (owner: "ты сломал кнопки
   последним фиксом, криво написано всё на этой странице"). Measured after: label top offset
   0px of 44. A flex row centres it the same way the tournament band does. */
.media-section__btn .btn.gray {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 44px;
  padding: 0;
}

.has-hover .nv-match__more:hover { border-color: var(--ds-yellow); background-color: #FFFEF4; }
.has-hover .tournament-section__btn .btn.gray:hover,
.has-hover .media-section__btn .btn.gray:hover {
  border-color: var(--ds-yellow);
  background-color: #FFFEF4 !important;
}

/* ===== sharp.css ===== */
/* sharp.css — the whole site on square corners. TRIAL, 2026-07-28, owner's request:
 * "хочу попробовать острые углы везде, а не закруглённые — поменяй это системно".
 *
 * WHY A LAYER AND NOT AN EDIT OF THE TOKENS ALONE. The radius on this site lives in three
 * places, and only the first is ours to set:
 *
 *   19 uses   `--ds-r-{xs,sm,md,pill}` in the redesign layers      — token-driven
 *   ~62       literal `border-radius` in those same layers         — never moved onto tokens
 *   91        literal `border-radius` in the compiled app.min.css  — no sources exist for it
 *             (35 of them `50%`: avatars, status dots, round buttons)
 *
 * Re-stating the tokens flips the first group and nothing else, so a token-only change would
 * leave roughly 150 rounded corners on the page and the trial would read as broken rather
 * than as a decision. The universal rule below is what makes the answer complete.
 *
 * It is deliberately blunt because it is a TRIAL: this file is loaded last and deleting it
 * is a total revert, with no archaeology across nine layers and a bundle we cannot rebuild.
 * If the owner keeps the look, the honest permanent form is the opposite shape — zero the
 * tokens, delete the literals layer by layer, and drop this file — and that is a session of
 * its own, listed in the backlog.
 *
 * SCOPE. Only the client bundle. The admin panel loads `admin-assets/`, a different sheet,
 * and is untouched.
 *
 * ⚠ NOT VERIFIED HERE: third-party UI. Preview loads NO external scripts at all (measured
 * 2026-07-28 — zero third-party hosts on a full home-page load), so the CookieYes banner
 * never rendered and this rule was never tested against it. On production the universal
 * `!important` will square it too, including anything it styles inline. Look at the consent
 * banner on staging before this goes anywhere near prod.
 *
 * The design-system rule this satisfies: "one border-radius value system-wide". The value
 * is now 0.
 */

/* 1. The design system itself says sharp. Kept even though the sweep below would cover it:
      a token that still reads 10px while every card renders square is a lie the next
      session would have to debug. The `--nv-*` pair is the older name still live in the
      compiled base. */
:root {
  --ds-r-xs: 0;
  --ds-r-sm: 0;
  --ds-r-md: 0;
  --ds-r-pill: 0;
  --nv-r: 0;
  --nv-r-pill: 0;
}

/* 2. Everything the tokens cannot reach: the compiled base, the frozen Vue bundles, and the
      literals in our own layers. `!important` is required — many of those are more specific
      than anything an appended sheet can write, and some are inline. */
*,
*::before,
*::after {
  border-radius: 0 !important;
}

/* The footer's YouTube mark used to need an exception here: its round disc was drawn in
   CSS (every other social symbol draws its own `<circle r="15">`), so the sweep squared it
   and left one square in a row of circles. That disc is gone as of 2026-07-29 — the mark
   now shows the sprite's own YouTube badge, which is a path and therefore untouched by a
   border-radius sweep. Nothing to except. See chrome.css §4. */

/* --- the second and third exceptions, same reason as the YouTube mark (2026-07-29) -----
   Editor: "на страницах турниров я бы вернул круглые логотипы всё-таки. И в любом случае
   нужно их уменьшить, слишком крупные."

   The pattern is now clear enough to state: a FULL round is functional — a mark, an avatar,
   a pill — while a small 2-12px radius is decoration, and decoration is what this trial is
   about. Every complaint so far (the YouTube mark, this, the Live badge) has been a fully
   round shape squared by the sweep. Small radii stay squared; full rounds are given back. */
/* The hero plate on the tournament page is NOT in this list: asked for round on the first
   pass and settled as square on the second (owner, 2026-07-29, "всё-таки давай логотип
   делать с острыми углами"). It takes the sweep like everything else. */
.tournament-card__icon {
  border-radius: 50% !important;
}

/* The sidebar's channel avatars (2026-07-29). A YouTube avatar is round in YouTube's own
   product, and a square one beside seven circles reads as a loading state. Full round, so
   it belongs in this list by the rule above. Listed here rather than beside the rest of the
   block in chrome.css so that retiring this trial still means reading ONE file. */
.our-channels__item-img img {
  border-radius: 50% !important;
}

/* --- controls whose SHAPE carries their meaning (owner, 2026-07-29) ----------------------
   "С острыми углами очень плохо выглядят некоторые элементы."

   Every one of these was drawn as a full round on purpose and says something by being one:

     .form-switch-field__slider     a switch is a track with a knob running in it; squared,
     + its ::before knob            the 38x20 track and its 14px knob read as two rectangles
                                    stacked, which is a rendering fault, not a control
     .nv-hero__dot                  a slider dot — and this one GROWS from 8px to 22px to
                                    mark the current slide, so squared it is a dash beside
                                    four smaller dashes with no dot language left
     .nv-hero__arrow                a 36px round icon button; the pair reads as the slider's
                                    controls only while they are discs

   All four are `--ds-r-pill` or 50% in their own layers — the sweep is the only thing
   squaring them, so this is the sweep making an exception for itself, not new styling.

   ⚠ A LITERAL, not `var(--ds-r-pill, 999px)`: this file zeroes that token at the top, and a
   var() fallback only applies to an UNSET variable — set to 0 it resolves to 0, and the
   exception would have done nothing. */
.form-switch-field__slider,
.form-switch-field__slider::before,
.nv-hero__dot,
.nv-hero__arrow {
  border-radius: 999px !important;
}

/* --- fourth exception: the LIVE chip (editor, 2026-07-29) -------------------------------
   "Кнопка Live теперь выглядит так. Я бы вернул старую."

   The sweep hit it twice. `.live__circle` is the 5px pulsing dot — a full round, so it comes
   back under the rule stated above, and a square 5px dot beside the word LIVE reads as a
   rendering fault rather than as a style. `.live` itself carried the mockup's 4px chip
   corner; by that same rule a 4px radius is decoration and would stay squared — but the
   editor asked for the old badge, not for half of it, and 4px is what the mockup specified
   for this chip.

   ⚠ FOURTH shape handed back to the trial (YouTube mark, tournament card icon, and now both
   halves of this one), and every editor complaint since 07-28 has been about this file. The
   backlog item "decide the sharp-corners trial" is what closes it properly; until then each
   exception is one more thing to unwind later. */
.live,
.match-list-block .live,
.match-list-section .live,
section.matches .live {
  border-radius: 4px !important;
}
.live__circle,
.live__circle::before,
.match-list-block .live__circle,
.match-list-section .live__circle,
section.matches .live__circle {
  border-radius: 50% !important;
}
