/* Премьера Битрикс24 — лендинг, сверстан 1:1 по фрейму «Land ПК» (1920 × 15708) */
@font-face {
  font-family: "Montserrat";
  src: url("assets/fonts/Montserrat-Cyrillic.woff2") format("woff2");
  font-weight: 500 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Montserrat";
  src: url("assets/fonts/Montserrat-Latin.woff2") format("woff2");
  font-weight: 500 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
  --lime: #ccf31e;
  --lime-hover: #2fec6f;
  --lime-text: #446300;
  --blue: #143aff;
  --blue-2: #006dff;
  --navy: #12112f;
  --font-tt: "Hero TT Travels Text", "Montserrat", Arial, sans-serif;
  --font-actay: "Hero TT Travels Text", "Montserrat", Arial, sans-serif;
  --font-body: "Montserrat", Arial, sans-serif;
  --perforation-width: 2px;
  --perforation-color: rgba(245,245,245,.6);
  --perforation-dash: 6px;
  --perforation-period: 12px;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--navy);
  color: #fff;
  font-family: var(--font-body);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

.mobile-hero { display: none; }
.mobile-page-background { display: none; }
@media (max-width: 900px) {
  :root { --perforation-width: 1px; --perforation-dash: 3px; --perforation-period: 6px; }
  body { position: relative; padding-bottom: 20px; }
  #viewport { display: none; }
  .mobile-page-background { display: block; position: absolute; inset: 0 0 auto; overflow: hidden; pointer-events: none; background: var(--navy); }
  /* Small, static tiles replace the desktop compositing layers on phones. */
  .mobile-page-background > img { position: absolute; left: 0; display: block; width: 100%; max-width: none; }
  .stage > div:first-child { display: none; }
  .stage > .tk, .stage .hero { display: none; }
  .mobile-hero { display: block; position: relative; width: 100%; overflow: hidden; background: transparent; }
  .mobile-hero-canvas { position: absolute; left: 0; top: 0; width: 402px; height: 814px; transform-origin: 0 0; color: #fff; }
  .mobile-hero-canvas > * { position: absolute; margin: 0; }
  .mobile-ticket-cover { left: 382px; top: 100px; width: 614px; height: 362px; opacity: .65; max-width: none; transform: rotate(90deg); transform-origin: top left; }
  .mobile-conference { left: 50.08px; top: 150px; width: 300px; font: 500 var(--hero-caption-font, 11px)/1.2 var(--font-body); white-space: normal; }
  .mobile-premiere { left: 49.42px; top: 190px; font: 500 35.598px/1 "Hero TT Travels Text", var(--font-tt); letter-spacing: -.712px; }
  .mobile-new-word { left: 53px; top: 246px; width: 169.709px; height: 42.997px; max-width: none; }
  .mobile-logo { left: 53px; top: 296px; width: 300.447px; height: 53.9px; }
  .mobile-logo img { position: absolute; display: block; max-width: none; }
  .mobile-logo img:first-child { left: 0; top: .643px; width: 202.673px; height: 53.255px; }
  .mobile-logo img:last-child { left: 206.788px; top: 0; width: 93.6587px; height: 39.5214px; }
  .mobile-date { left: 53px; top: 383px; width: 130px; height: 29px; border-radius: 70.608px; background: #fff; display: flex; align-items: center; justify-content: center; gap: 5.649px; color: #006dff; font: 800 var(--hero-pill-font, 12px)/1.2 var(--font-body); white-space: nowrap; }
  .mobile-date img { width: 8.473px; height: 8.473px; flex: none; }
  .mobile-place { left: 198.47px; top: 384px; width: 71.186px; font: 500 var(--hero-label-font, 11px)/1.2 var(--font-body); }
  .mobile-register { left: 53.09px; top: 448px; width: 300.785px; height: 60px; border-radius: 67.248px; font-size: var(--hero-button-font, 16px); }
  .mobile-perforation { display: none; left: 357.5px; top: 593px; width: 4.503px; height: 313.123px; max-width: none; transform: rotate(90deg); transform-origin: top left; }
  /* SVG экспортированы с разными пропорциями: приводим обводки к одному квадрату. */
  .mobile-icon { top: 629px; width: 45px; height: 45px; max-width: none; }
  .mobile-icon-ai { left: 69.834px; transform: scaleX(-1); }
  .mobile-icon-code { left: 142px; }
  .mobile-icon-pointer { left: 214px; }
  .mobile-icon-agents { left: 286px; transform: scaleX(-1); }
}

/* Сцена фиксированной ширины 1920, масштабируется под окно (см. script.js) */
.viewport { position: relative; width: 100%; overflow: hidden; }
.stage {
  position: relative;
  width: 1920px;
  height: 17261px;
  transform-origin: 0 0;
}
.abs { position: absolute; left: 0; top: 0; transform-origin: 0 0; margin: 0; }
.stage img { max-width: none; }
.abs > img.abs, .swing > img { position: absolute; max-width: none; display: block; }

/* Текст */
.t { margin: 0; color: #fff; }
.tt-m { font-family: var(--font-tt); font-weight: 500; }
.tt-b { font-family: var(--font-tt); font-weight: 700; }
.tt-xb { font-family: var(--font-tt); font-weight: 800; font-size: 52px; line-height: 1.1; }
.mont-m { font-family: var(--font-body); font-weight: 500; }
.mont-xb { font-family: var(--font-body); font-weight: 800; font-size: 30px; line-height: 1.1; }
.mont-cap { font-family: var(--font-body); font-weight: 500; font-size: 16px; line-height: 1.3; }
.h-xl {
  font-family: var(--font-tt); font-weight: 700; font-size: 140px; line-height: 1.2;
  letter-spacing: .02em; text-transform: uppercase; text-align: center; white-space: nowrap;
}
.actay {
  font-family: var(--font-actay); font-weight: 700; font-size: 171.919px; line-height: 136.5px;
  text-align: center; white-space: nowrap;
}
.why { white-space: nowrap;
  font-family: var(--font-tt); font-weight: 700; font-size: 28px; line-height: 1.6;
  letter-spacing: -0.03em; text-transform: uppercase;
}
.spk-name {
  font-family: "Hero TT Travels Text", var(--font-tt); font-weight: 700; font-size: 48.255px; line-height: 1.2;
  letter-spacing: -0.03em; text-transform: uppercase;
}
.spk-role {
  width: 669.829px; height: 38px;
  font-family: var(--font-body); font-weight: 500; font-size: 16px; line-height: 1.2;
}

.hero-meta { display: flex; align-items: flex-start; gap: 11px; font-size: 32px; line-height: 1.2; }
.hero-meta-dot { width: 23.364px; height: 23.364px; margin-top: 8px; flex: 0 0 auto; border-radius: 50%; background: #fff; }
.hero-meta-conference { width: 516px; }
.hero-meta-place { width: 170px; }

/* Мелкая точка фрейма */
.dot9 { left: 1019px; top: 199px; width: 9px; height: 9px; border-radius: 50%; background: #fff; }

/* Кнопки */
.btn {
  display: flex; align-items: center; justify-content: center;
  background: var(--lime); color: var(--lime-text); text-decoration: none;
  font-family: var(--font-body); font-weight: 600; white-space: nowrap;
  transition: background-color .15s ease;
}
.btn:hover, .btn:active { background-color: var(--lime-hover); }
button:not(.tab):not(.ml-program-tab):active, .faq-card summary:active, a[aria-label="Следующий зал"]:active { filter: brightness(1.12); }
.btn:focus-visible, .tab:focus-visible, .nav a:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }

/* Шапка */
.header {
  position: fixed;
  z-index: 1000;
  transform-origin: top left;
  border-radius: 43.66px;
  background: rgba(255, 255, 255, .15);
  -webkit-backdrop-filter: blur(24px);
  backdrop-filter: blur(24px);
}
.nav { left: 358px; top: 0; width: 850px; height: 130.914px; display: flex; align-items: center; justify-content: center; gap: 38px; }
.nav a {
  font-family: var(--font-body); font-weight: 500; font-size: 26px; line-height: 1.1;
  color: #fff; text-decoration: none; white-space: nowrap; transition: opacity .2s;
}
.nav a:hover { opacity: .75; }
.mobile-menu-toggle { display: none; }

@media (max-width: 600px) {
  .header { display: grid; grid-template-columns: minmax(0, 1fr) auto 44px; align-items: center; gap: 6px; padding: 8px 10px 8px 16px; border: 1px solid rgba(255,255,255,.16); border-radius: 30px; background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .25s ease, visibility .25s; }
  /* Blur each panel independently: a blurred parent prevents its dropdown from sampling the page. */
  .header::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; background: rgba(255,255,255,.15); -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px); pointer-events: none; }
  .header.has-scrolled { opacity: 1; visibility: visible; pointer-events: auto; }
  .header > a[aria-label="Битрикс24"] {
    grid-column: 1; grid-row: 1; position: relative;
    left: auto !important; top: auto !important;
    width: clamp(96px, 25vw, 140px) !important; height: auto !important;
    aspect-ratio: 271.852 / 48.906; transform: none;
  }
  .header > a[aria-label="Битрикс24"] img { height: auto !important; }
  .header > a[aria-label="Битрикс24"] img:nth-child(1) { left: 0 !important; top: 1.184% !important; width: 67.392% !important; }
  .header > a[aria-label="Битрикс24"] img:nth-child(2) { left: 68.743% !important; top: .912% !important; width: 19.559% !important; }
  .header > a[aria-label="Битрикс24"] img:nth-child(3) { left: 89.832% !important; top: 0 !important; width: 10.168% !important; }
  .header > a[aria-label="Битрикс24"] img:nth-child(4) { left: 94.270% !important; top: 13.728% !important; width: 3.347% !important; }
  .header > .btn {
    grid-column: 2; grid-row: 1; position: relative;
    left: auto !important; right: auto; top: auto !important;
    width: clamp(100px, 30vw, 154px) !important; height: 28px !important;
  }
  .header > .btn::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 44px; transform: translateY(-50%); }
  .header > .btn span { font-size: clamp(12px, 3.1vw, var(--mobile-size-button, 16px)) !important; }
  .mobile-menu-toggle {
    grid-column: 3; grid-row: 1;
    display: flex; position: relative; z-index: 2;
    width: 44px; height: 44px; padding: 0; border: 0;
    border-radius: 0; background: transparent; align-items: center; justify-content: center;
    cursor: pointer;
  }
  .mobile-menu-icon { position: relative; display: block; width: 22px; height: 16px; }
  .mobile-menu-icon > span { position: absolute; left: 0; width: 22px; height: 1.25px; border-radius: 2px; background: rgba(255,255,255,.88); transition: transform .2s ease, opacity .2s ease; }
  .mobile-menu-icon > span:nth-child(1) { top: 0; }
  .mobile-menu-icon > span:nth-child(2) { top: 7px; }
  .mobile-menu-icon > span:nth-child(3) { top: 14px; }
  .header.menu-open .mobile-menu-icon > span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .header.menu-open .mobile-menu-icon > span:nth-child(2) { opacity: 0; }
  .header.menu-open .mobile-menu-icon > span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .mobile-menu-toggle:focus-visible { outline: 2px solid #fff; outline-offset: 0; border-radius: 50%; }
  .nav {
    display: flex; left: 0; top: 70px; width: 100%; height: auto;
    padding: 8px 14px; border: 0; border-radius: 26px; flex-direction: column;
    align-items: stretch; gap: 0; background: rgba(255,255,255,.15);
    box-shadow: 0 18px 45px rgba(0,7,31,.3); -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px);
    opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-8px) scale(.98); transform-origin: top right;
    transition: opacity .2s ease, transform .2s ease, visibility .2s;
  }
  .header.menu-open .nav { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
  .nav a { display: flex; align-items: center; min-height: 40px; padding: 5px 10px; border-radius: 14px; font-size: 15px; }
  .nav a::before, .nav a::after { content: none; }
  .nav a:hover, .nav a:focus-visible { opacity: 1; background: rgba(255,255,255,.1); }
}
@media (max-width: 360px) {
  .header > a[aria-label="Битрикс24"] { width: 92px !important; }
  .header > .btn { width: 96px !important; }
}

/* Первый экран */
@font-face {
  font-family: "Hero TT Travels Text";
  src: url("assets/fonts/TT-Travels-Text-Medium.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Hero TT Travels Text";
  src: url("assets/fonts/TT-Travels-Text-Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
.hero .tt-m, .hero .tt-b { font-family: "Hero TT Travels Text", var(--font-tt); }
.date-pill {
  width: 352px; height: 75px; padding: 20.628px 27.504px;
  display: flex; align-items: center; justify-content: center; gap: 15.576px;
  background: #fff; border-radius: 194.702px;
  font-family: var(--font-body); font-weight: 800; font-size: 26px; line-height: 1.2; color: var(--blue-2);
  white-space: nowrap;
}
.date-pill img { width: 23.364px; height: 23.364px; flex: none; display: block; }
.ticket-cover { max-width: none; }

/* Match why_ticket.svg: fixed square-ended dashes, never browser-fitted borders. */
.stage svg [stroke-dasharray="12 12"], .perforation-outline rect {
  fill: none; stroke: var(--perforation-color); stroke-opacity: 1;
  stroke-width: var(--perforation-width);
  stroke-dasharray: var(--perforation-dash) var(--perforation-dash);
  stroke-linecap: butt; opacity: 1;
}
.perforation-outline { position: absolute; display: block; overflow: visible; pointer-events: none; }
:is(.partner-logo-card,.partner-contact,.faq-card,.program-talk,.ml-program-session,.ml-speaker-card,.ml-award-picture,.ml-why-card,.ml-contact,.ml-faq-card).has-perforation { border-color: transparent; }
.award-pic.has-perforation::after { display: none; }

/* Лучи: качание вокруг «источника» света */
.swing { position: absolute; inset: 0; transform-origin: 50% 0; }
.swing-b { transform-origin: 100% 50%; }

/* Лучи качаются ~3.2 с; билет и надписи появляются параллельно. */
.anim .swing-a { animation: swing-a 3.2s cubic-bezier(.45, 0, .55, 1) both; }
.anim .swing-b { animation: swing-b 3.2s cubic-bezier(.45, 0, .55, 1) both; }
.anim .swing-c { animation: swing-c 3.2s cubic-bezier(.45, 0, .55, 1) both; }
@keyframes swing-a {
  0% { transform: rotate(-14deg); } 25% { transform: rotate(11deg); } 50% { transform: rotate(-8deg); }
  75% { transform: rotate(4deg); } 100% { transform: rotate(0); }
}
@keyframes swing-b {
  0% { transform: rotate(3deg); } 25% { transform: rotate(-2.5deg); } 50% { transform: rotate(1.8deg); }
  75% { transform: rotate(-.8deg); } 100% { transform: rotate(0); }
}
@keyframes swing-c {
  0% { transform: rotate(13deg); } 25% { transform: rotate(-10deg); } 50% { transform: rotate(7deg); }
  75% { transform: rotate(-3deg); } 100% { transform: rotate(0); }
}

.anim .reveal { opacity: 0; }
.anim .r1 { animation: rise-in .8s cubic-bezier(.2, .8, .2, 1) .65s both; }
.anim .r2 { animation: rise-in .8s cubic-bezier(.2, .8, .2, 1) .8s both; }
.anim .r3 { animation: rise-in .8s cubic-bezier(.2, .8, .2, 1) .95s both; }
.anim .r4 { animation: rise-in .8s cubic-bezier(.2, .8, .2, 1) 1.1s both; }
@keyframes rise-in {
  from { opacity: 0; translate: 0 24px; }
  to { opacity: 1; translate: 0 0; }
}

/* Появление билета: спокойно проявляется и чуть «доезжает» до своего размера,
   затем по нему проходит блик прожектора. Все слои билета анимируются одинаково. */
.tk { width: 0; height: 0; transform-origin: 961px 727px; }
/* Keep both external gaps around the desktop/tablet header slightly tighter. */
.stage .tk { top: -96px; }
.anim .tk { animation: tk-enter 1.1s cubic-bezier(.25, .8, .3, 1) .3s both; }
@keyframes tk-enter {
  from { opacity: 0; scale: .96; }
  to   { opacity: 1; scale: 1; }
}
.glare {
  left: 177px; top: 295.97px; width: 1566px; height: 869.33px; border-radius: 80px;
  -webkit-mask: url(assets/ticket_cover-container.svg) center / 100% 100% no-repeat;
  mask: url(assets/ticket_cover-container.svg) center / 100% 100% no-repeat;
  pointer-events: none; opacity: 0; display: none;
  background: linear-gradient(105deg, transparent 38%, rgba(255,255,255,.08) 44%, rgba(255,255,255,.42) 50%, rgba(255,255,255,.08) 56%, transparent 62%) no-repeat;
  background-size: 260% 100%; background-position: 130% 0;
  mix-blend-mode: overlay;
}
.anim .glare { display: block; animation: glare 1.3s cubic-bezier(.4, 0, .2, 1) .95s both; }
@keyframes glare {
  0% { opacity: 1; background-position: 130% 0; }
  85% { opacity: 1; }
  100% { opacity: 0; background-position: -30% 0; }
}

@media (prefers-reduced-motion: reduce) {
  .anim .swing, .anim .reveal { animation: none !important; opacity: 1 !important; }
}

/* Программа */
.program-pending.sr-g { display: flex; align-items: center; justify-content: center; gap: 24px; top: 3830px; width: 1920px; height: auto; }
.program-pending > img, .program-pending > svg { flex: none; }
.program-pending p { font-family: "Hero TT Travels Text", var(--font-tt); font-weight: 500; font-size: 28px; line-height: 1.5; text-align: center; text-transform: uppercase; white-space: nowrap; }
.program-following { width: 1920px; }
.stage[data-program-state="pending"] { height: 15711px; }
.stage[data-program-state="pending"] .program-content { display: none; }
.stage[data-program-state="pending"] .program-following { top: -1550px; }
.stage[data-program-state="pending"] .program-following-item { margin-top: -1550px; }
.stage[data-program-state="tracks"] { height: 15961px; }
.stage[data-program-state="tracks"] .program-schedule { display: none; }
.stage[data-program-state="tracks"] .tabs,
.stage[data-program-state="published"] .tabs { margin-top: 140px; }
.stage[data-program-state="tracks"] .program-following { top: -1300px; }
.stage[data-program-state="tracks"] .program-following-item { margin-top: -1300px; }
.stage[data-program-state="published"] { height: calc(17401px + var(--program-extra, 0px)); }
.stage[data-program-state="published"] .program-details { top: 140px; }
.stage[data-program-state="published"] .program-following { top: calc(140px + var(--program-extra, 0px)); }
.stage[data-program-state="published"] .program-following-item { margin-top: calc(140px + var(--program-extra, 0px)); }
.stage[data-program-state="published"] .hall-chip,
.stage[data-program-state="published"] > .program-content > .program-schedule { margin-top: 140px; }
.tabs { position: absolute; left: 177px; top: 3905px; width: 1566px; display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; gap: 36px; }
.tab {
  position: relative; flex: none; margin: 0;
  display: flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 68px; max-width: 100%; padding: 10px 20px; border-radius: 100px; border: 3px solid #fff; background: transparent;
  font-family: var(--font-body); font-weight: 500; font-size: 30px; line-height: 1.3; color: #fff;
  white-space: normal; overflow-wrap: break-word; text-align: center; cursor: pointer; transition: background-color .2s, border-color .2s, color .2s;
}
.tab-l { font-size: 30px; }
.tab i { width: 20px; height: 20px; border-radius: 50%; background: #fff; flex: none; }
.tab.is-active, .tab:active { background: var(--tab-bg); color: var(--tab-ink); border-color: transparent; }
.tab.is-active i, .tab:active i { background: var(--tab-ink); }
@media (hover: hover) {
  .tab:hover { background: var(--tab-bg); color: var(--tab-ink); border-color: transparent; }
  .tab:hover i { background: var(--tab-ink); }
}
.hall-chip {
  display: flex; align-items: center; justify-content: center; gap: 9.392px;
  padding: 12px 28px; border-radius: 93.925px; background: var(--track); color: var(--track-ink);
  min-height: 68px; font-family: var(--font-body); font-weight: 500; font-size: 30px; line-height: 1.3; white-space: normal;
}
.hall-chip span { min-width: 0; overflow-wrap: break-word; }
.hall-chip i { width: 18.785px; height: 18.785px; border-radius: 50%; background: var(--track-ink); flex: none; }
.program-hall-divider { display: block; opacity: .75; }
.program-hall-name[hidden] { display: none !important; }
.program-details > svg.track-fill,
.program-details > a[aria-label="Следующий зал"] { display: block; }
.program-session-list { position: absolute; left: 329px; top: 4384.061px; width: 1297px; }
.program-session-list [hidden], .ml-program-sessions [hidden] { display: none !important; }
.program-talk, .ml-program-session, .faq-card, .ml-faq-card { --perforation-color: rgba(245,245,245,.45); }
.program-talk {
  position: relative; padding: var(--program-card-padding, 52px 54px);
  border: var(--perforation-width) dashed var(--perforation-color); border-radius: var(--program-card-radius, 50px);
  background: rgba(255,255,255,.15);
  -webkit-backdrop-filter: blur(6.683px); backdrop-filter: blur(6.683px);
}
.program-talk + .program-talk { margin-top: 40px; }
.program-talk .time-chip { display: inline-flex; }
.program-talk h3 { margin-top: 30px; font-size: var(--program-title-font-size, 30px); overflow-wrap: break-word; }
.program-talk > h3:first-child { margin-top: 0; }
.program-talk-kind { margin-top: 24px; font: 500 var(--program-description-font-size, 16px)/1.5 var(--font-body); }
.program-talk-kind + h3 { margin-top: 12px; }
.program-talk-description {
  margin-top: 24px; color: #fff;
  font: 500 var(--program-description-font-size, 16px)/1.5 var(--font-body);
  overflow-wrap: break-word;
}
.program-talk:is([data-session^="coffee-break"], [data-session*="-tba-"]) { display: flex; align-items: center; flex-wrap: wrap; gap: 32px; }
.program-talk:is([data-session^="coffee-break"], [data-session*="-tba-"]) > h3 { margin: 0; }
.program-talk:is([data-session^="coffee-break"], [data-session*="-tba-"]) > .time-chip { flex-shrink: 0; }
.program-talk-speakers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin-top: 42px; }
.program-talk-speakers-single { grid-template-columns: minmax(0, 1fr); }
.program-talk-speakers-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.program-person { display: flex; align-items: flex-start; gap: 20px; min-width: 0; }
.program-person-copy { position: relative; min-width: 0; }
.program-person-copy .program-person-label, .ml-program-speaker-copy .program-person-label { margin-bottom: 8px; font: 500 var(--program-role-font-size, 10px)/1.3 var(--font-body); opacity: .8; }
.program-person-copy .mont-xb { font-size: var(--program-name-font-size, 16px); font-weight: 700; overflow-wrap: break-word; }
.program-person-copy .mont-cap { margin-top: 16px; font-size: var(--program-role-font-size, 10px); overflow-wrap: break-word; }
.program-speaker-media { position: relative; flex: 0 0 93.085px; width: 93.085px; height: 142px; isolation: isolate; }
@media (min-width: 901px) {
  .stage .program-speaker-media { flex-basis: 107.05px; width: 107.05px; height: 163.3px; }
}
.program-speaker-media .photo { position: absolute; inset: 0; border-radius: 16.792px; }
.program-speaker-media .photo img { left: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.program-speaker-media-voloshin .photo img { top: -2%; height: 102%; }
.program-speaker-media-pletnev .photo img { left: -3%; top: 2%; width: 114%; height: 114%; }
.program-speaker-media, .program-speaker-media * { animation: none !important; transition: none !important; }
.program-photo-accent {
  position: absolute; inset: 0; overflow: hidden; border-radius: 16.792px;
  clip-path: inset(64% 0 0 0); pointer-events: none; opacity: .45;
}
.program-photo-accent .track-glow {
  position: absolute; left: 43.62%; top: 32.87%; width: 188.05%; height: 231.07%;
  transform: matrix(-0.93317,0.35943,0.58837,0.80859,0,0); transform-origin: 0 0; background: var(--track);
}
.program-talk-pending { display: flex; flex-direction: column; justify-content: center; min-height: 350px; text-align: center; }
.program-talk-pending h3 { margin-top: 0; text-wrap: balance; }
.program-pending-copy { margin-top: 24px; font: 500 28px/1.5 var(--font-body); }
.card {
  border-radius: 50px;
  -webkit-backdrop-filter: blur(6.683px);
  backdrop-filter: blur(6.683px);
}
.card svg { position: absolute; inset: 0; overflow: visible; }
.time-chip {
  display: flex; align-items: center; justify-content: center;
  width: max-content; min-height: 58.84px; border-radius: 40.39px; background: rgba(255,255,255,.15); color: #fff; border: 0;
  font-family: var(--font-body); font-weight: 500; font-size: 30px; line-height: 1.3;
  padding: 10px 36px; text-align: center; white-space: nowrap;
}

/* Фото */
.photo { overflow: hidden; }
.photo img { position: absolute; top: 0; left: -0.15%; width: 114.41%; height: 100%; max-width: none; display: block; }

/* Слайдер «кинозал» */
.cinema { background: #000; overflow: hidden; }
.slider { overflow: hidden; cursor: grab; touch-action: pan-y; user-select: none; }
.slider.is-dragging { cursor: grabbing; }
.slider-track {
  position: absolute; top: 0; left: -74.95px; height: 100%;
  display: flex; gap: 57.853px;
}
.slide { position: relative; height: 462.824px; flex: none; overflow: hidden; }
.slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }
.ellipse { width: 3058.199px; height: 1359.991px; border-radius: 50%; background: #000; pointer-events: none; }
.shade { top: 0; width: 182.46px; height: 994.182px; pointer-events: none; }
.shade-r { background: linear-gradient(to right, rgba(0,0,0,0), #000), linear-gradient(to right, rgba(0,0,0,0), #000); }
.shade-l { background: linear-gradient(to left, rgba(0,0,0,0), #000), linear-gradient(to left, rgba(0,0,0,0), #000); }

/* ===== Правки: полноширинные подложки ===== */
.black-band {
  background: #000;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 300px, #000 calc(100% - 300px), transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0, #000 300px, #000 calc(100% - 300px), transparent 100%);
}
/* Кнопки в центре страницы */
.btn-mid span { font-weight: 600; }

/* Корешок билета */
.stub { width: 0; height: 0; }

/* Лучи, которые двигаются при прокрутке */
.sbeam { transform-origin: 50% 0; }

/* Появление блоков при прокрутке */
.js .sr, .js .sr-g {
  opacity: 0; translate: 0 70px;
  transition: opacity .9s cubic-bezier(.2,.8,.2,1) var(--d, 0s), translate .9s cubic-bezier(.2,.8,.2,1) var(--d, 0s);
}
.js .sr.in, .js .sr-g.in { opacity: 1; translate: 0 0; }
/* Fade intro dividers with their copy without shifting SVG geometry. */
.js .intro-decoration { opacity: 0; transition: opacity .9s cubic-bezier(.2,.8,.2,1); }
.js .intro-decoration.in { opacity: 1; }
.js #about-details.sr, .js .ml-intro.sr { translate: none; transition: opacity .9s cubic-bezier(.2,.8,.2,1); }
.js .tab.sr:nth-child(2) { --d: .08s; } .js .tab.sr:nth-child(3) { --d: .16s; }
.js .tab.sr:nth-child(4) { --d: .24s; } .js .tab.sr:nth-child(5) { --d: .32s; }
.js .photo.sr { --d: .35s; }
.sr-g { width: 0; height: 0; }

/* Бейджи спикеров: «висят» на пунктирной линии и раскачиваются при появлении */
.badge { width: 0; height: 0; }
.badge-hit { cursor: default; }
/* Лента спикеров видна сразу: её контейнер не зависит от прокрутки. */
.spk-row { opacity: 1; }
/* Rotated labels extend beyond the rail; only the rail itself handles pointer input. */
.spk-track { width: 0; height: 0; pointer-events: none; }
.spk-row { cursor: grab; touch-action: pan-y; }
.spk-row.is-dragging { cursor: grabbing; }
.spk-row.is-dragging .badge-hit { pointer-events: none; }
.spk-line { position: absolute; top: 0; width: 2px; height: 950px; margin-left: -1px;
  background: repeating-linear-gradient(to bottom, var(--perforation-color) 0 var(--perforation-dash), transparent var(--perforation-dash) var(--perforation-period)); }
.spk-row .photo img { inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; }

@media (prefers-reduced-motion: reduce) {
  .js .sr, .js .sr-g, .js .spk-row, .js .intro-decoration { opacity: 1 !important; translate: none !important; rotate: none !important; animation: none !important; transition: none !important; }
}

/* Слайдер: клик по крайним кадрам листает ленту */
.slider { clip-path: inset(0 3px); }
.cine-zoom { width: 0; height: 0; }
.slider.edge-l, .slider.edge-r { cursor: pointer; }
.slider-dots button:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }

/* Слой лучей обрезан по фрейму макета, как в Figma. На окне шире макета script.js
   растягивает его по горизонтали до краёв окна, чтобы лучи начинались от края экрана */
.frame-clip { left: 0; top: 0; width: 1920px; height: 15708px; overflow: hidden; pointer-events: none; transform-origin: 960px 0; }

/* широкий луч: справа (вдоль его ширины) приглушён до 70% за перфорацией, на конце мягко гаснет */
.beam-b-fade {
  -webkit-mask-image: linear-gradient(180deg, #000 0, #000 2450px, rgba(0,0,0,.7) 3000px), linear-gradient(90deg, #000 0, #000 5300px, transparent 6228px);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(180deg, #000 0, #000 2450px, rgba(0,0,0,.7) 3000px), linear-gradient(90deg, #000 0, #000 5300px, transparent 6228px);
  mask-composite: intersect; }
/* декоративные слои и картинки не выделяются и не перетаскиваются; текст выделяется как обычно */
img, svg, .frame-clip, .beams, .swing, .tk, .stub, .glare, .col-glow, [aria-hidden="true"] { -webkit-user-select: none; user-select: none; -webkit-user-drag: none; }
h1, h2, h3, h4, p, .t { -webkit-user-select: text; user-select: text; }
img::selection, svg::selection { background: transparent; }

/* Подпись под слайдером сменяется вместе с кадром */
.slider-caption { transition: opacity .38s ease, translate .38s ease; }
.slider-caption.is-out { opacity: 0; translate: 0 10px; }
.slider-dots { display: flex; align-items: center; justify-content: center; gap: 18px; }
.slider-dots button {
  position: relative; width: 12px; height: 40px; flex: 0 0 auto; padding: 0; border: 0; background: none; cursor: pointer;
  transition: width .32s cubic-bezier(.22,.8,.24,1);
}
.slider-dots button::after { content: ''; position: absolute; left: 0; top: 14px; width: 12px; height: 12px; border-radius: 999px; background: rgba(255,255,255,.42); transition: width .32s cubic-bezier(.22,.8,.24,1), background .25s ease; }
.slider-dots button:hover::after { background: rgba(255,255,255,.75); }
.slider-dots button.is-on { width: 44px; }
.slider-dots button.is-on::after { width: 44px; background: #fff; }

/* Цвет зала-потока: всё цветное в блоке расписания перекрашивается в цвет выбранного потока */
.stage { --track: #6732FF; --track-ink: #fff; --track-border: transparent; }
.tab, .hall-chip, .hall-chip i, .tab i, .time-chip { transition: background-color .4s, color .4s, border-color .4s; }
.track-fill { fill: var(--track); transition: fill .4s; }
.track-ink { fill: var(--track-ink); transition: fill .4s; }
.track-glow { background: #143aff;
  -webkit-mask: url(assets/speaker_glow.webp) center / 100% 100% no-repeat; mask: url(assets/speaker_glow.webp) center / 100% 100% no-repeat; }

/* Звёздочки-разделители */
.star { width: 58.907px; height: 58.907px; }

/* Заголовки нижних блоков: Actay Wide 140 */
.h-actay {
  font-family: var(--font-actay); font-weight: 700; font-size: 140px; line-height: 1.2;
  letter-spacing: .02em; text-transform: uppercase; text-align: center; white-space: nowrap;
}

/* Зачем приезжать: четыре тезиса в билетах */
.why2 { letter-spacing: 0; }
.why-dot { width: 33.738px; height: 33.738px; border-radius: 50%; background: #fff; }

/* Награждение */
.award-pic { overflow: hidden; border-radius: 43.254px; }
.award-pic::after { content: ""; position: absolute; inset: 0; border: var(--perforation-width) dashed var(--perforation-color); border-radius: inherit; pointer-events: none; }
.award-pic img { filter: blur(.5px); }

/* Как это было */
.past-photo { overflow: hidden; border-radius: 56.186px; }
.past-video-cover { position: absolute; inset: 0; display: block; color: #fff; background: #071d58; }
.past-video-cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.past-video-cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0, 7, 32, .35), transparent 55%); }
.past-video-player { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; opacity: 0; pointer-events: none; transition: opacity .3s ease; }
.past-photo.is-video-ready .past-video-player { opacity: 1; pointer-events: auto; }
.past-photo.is-video-ready .past-video-cover { pointer-events: none; }

/* Партнеры */
.partner-logos.is-hidden, .legacy-sponsor-footer.is-hidden { display: none; }
.partner-contact { width: 1120px; height: 430px; border: var(--perforation-width) dashed var(--perforation-color); border-radius: 52px; background: rgba(255,255,255,.15); }
.partner-contact-photo { overflow: hidden; border-radius: 36px; }
.partner-contact-photo img { position: absolute; left: -8.51%; top: 0; width: 114.41%; height: 100%; object-fit: cover; display: block; }
.partner-contact-copy { font-family: var(--font-body); font-weight: 500; font-size: 28px; line-height: 1.45; color: #fff; }
.partner-contact-copy p { margin: 0; }
.partner-contact-intro { max-width: 690px; line-height: 1.35; margin-bottom: 28px !important; }
.partner-contact-name { margin-bottom: 28px !important; font-weight: 600; text-transform: uppercase; }
.partner-contact-copy a { display: block; width: fit-content; min-height: 40px; color: #fff; text-decoration: none; background-image: repeating-linear-gradient(to right, var(--perforation-color) 0 var(--perforation-dash), transparent var(--perforation-dash) var(--perforation-period)); background-position: 0 calc(100% - 2px); background-size: 100% var(--perforation-width); background-repeat: no-repeat; }
.partner-contact-copy a + a { margin-top: 12px; }
.partner-contact-copy a:hover, .partner-contact-copy a:focus-visible { background-image: repeating-linear-gradient(to right, #fff 0 var(--perforation-dash), transparent var(--perforation-dash) var(--perforation-period)); }
.partner-contact-copy a:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.after-partners { top: 2495px; width: 1920px; }
.registration-top-divider { display: none; }
.age-rating { top: auto; bottom: 64px; width: 1920px; color: rgba(255,255,255,.85); font-family: var(--font-body); font-weight: 600; font-size: 40px; line-height: 1.2; text-align: center; }
.ad-disclosure { top: auto; bottom: 20px; width: 1920px; color: rgba(255,255,255,.16); font-family: var(--font-body); font-size: 17px; line-height: 1.2; text-align: center; }

/* Вопросы раскрываются только после нажатия. */
.faq-list { display: flex; flex-direction: column; }
/* Compact FAQ cards share the why-card type size and programme outline opacity. */
.faq-card {
  position: relative; width: 100%; height: auto; border: var(--perforation-width) dashed var(--perforation-color);
  border-radius: 40px; background: rgba(255,255,255,.15);
  -webkit-backdrop-filter: blur(6.683px); backdrop-filter: blur(6.683px);
}
.faq-card + .faq-card { margin-top: 24px; }
.faq-card[open] { padding-bottom: 36px; }
.faq-card summary {
  position: relative; display: flex; align-items: center; gap: 32px; min-height: 128px;
  padding: 32px 40px; list-style: none; cursor: pointer;
}
.faq-card summary::-webkit-details-marker { display: none; }
.faq-card summary:focus-visible { outline: 3px solid #fff; outline-offset: 6px; border-radius: 40px; }
.faq-question {
  flex: 1; min-width: 0; margin: 0; color: #fff;
  font-family: var(--font-tt); font-weight: 700; font-size: 28px; line-height: 1.6;
}
.faq-answer { width: calc(100% - 80px); margin: 0 40px; color: #fff; font-family: var(--font-body); font-size: 28px; font-weight: 500; line-height: 1.4; }
.faq-toggle { position: relative; flex: 0 0 62.93px; width: 62.93px; height: 62.93px; }
.faq-toggle img { position: absolute; display: block; left: 0; top: 0; max-width: none; }
.faq-toggle .faq-plus, .faq-toggle .faq-minus { left: 11px; top: 11px; }
.faq-card[open] .faq-plus, .faq-card:not([open]) .faq-minus { display: none; }
.logo-ph {
  width: 345.5px; font-family: var(--font-tt); font-weight: 700; font-size: 83.333px; line-height: 1.5;
  letter-spacing: .02em; text-transform: uppercase; white-space: nowrap;
}
.logo-cell { width: 385px; height: 387px; }
.logo-cell svg { position: absolute; inset: 0; overflow: visible; }

/* Партнёры и спонсоры */
.sponsor-text { font-size: 32px; line-height: 1.2; }
.sponsor-text .up, .sponsor-text a { display: inline-block; line-height: 1.6; }
.sponsor-text .up { text-transform: uppercase; }
.sponsor-text a { color: #08a6ff; text-decoration: underline; text-underline-offset: 4px; transition: color .2s; }
.sponsor-text a:hover { color: #a5e4ff; }

/* Ленты, которые тянут мышью (спикеры, слайдер), не выделяют текст при перетаскивании */
.spk-row, .spk-row *, .slider, .slider * { -webkit-user-select: none; user-select: none; -webkit-user-drag: none; }

/* Широкий луч внизу: в макете вся группа размыта (blur 100), размываем только его — у остальных лучей размытие уже в картинке */
.beam-soft { filter: blur(50px); }

/* Compact programme for narrow desktop panels and tablets (601–900px). */
.program-compact-hall { display: none; }
.stage.program-is-compact .program-compact-hall {
  display: grid; grid-template-columns: var(--compact-star) minmax(0,1fr) var(--compact-arrow);
  align-items: start; column-gap: var(--compact-gap); row-gap: var(--compact-gap);
}
.program-compact-copy { min-width: 0; overflow: hidden; font: 500 var(--compact-track-font)/1.4 var(--font-body); }
.program-compact-title { display: inline; color: #fff; overflow-wrap: anywhere; }
.program-compact-dots { display: inline-block; vertical-align: middle; width: 100%; height: var(--compact-dots-height); margin-left: var(--compact-leader-gap); margin-right: -100%; background: radial-gradient(circle,rgba(255,255,255,.42) var(--compact-dot-radius),transparent var(--compact-dot-edge)) left center / var(--compact-dot-period) var(--compact-dots-height) repeat-x; }
.program-compact-star { width: var(--compact-star); height: var(--compact-star); }
.program-compact-next { grid-column: 3; grid-row: 1; align-self: end; width: var(--compact-arrow); height: var(--compact-arrow); padding: 0; border: 0; background: transparent; cursor: pointer; }
.program-compact-next svg { display: block; width: 100%; height: 100%; }
.program-compact-room { grid-column: 2 / -1; color: #fff; font: 500 var(--compact-room-font)/1.4 var(--font-body); }
.program-compact-room[hidden] { display: none; }
.stage.program-is-compact .hall-chip,
.stage.program-is-compact .program-details > svg.track-fill,
.stage.program-is-compact .program-details > .program-hall-name,
.stage.program-is-compact .program-details > .program-hall-divider,
.stage.program-is-compact .program-details > a[aria-label="Следующий зал"] { display: none; }
.stage.program-is-compact .tabs { gap: var(--compact-tab-gap); }
.stage.program-is-compact .tab { gap: var(--compact-leader-gap); min-height: var(--compact-tab-height); padding: var(--compact-tab-padding); border-width: var(--compact-border); font-size: var(--compact-tab-font); }
.stage.program-is-compact .tab i { width: var(--compact-tab-dot); height: var(--compact-tab-dot); }
.stage.program-is-compact .program-talk-speakers { grid-template-columns: minmax(0,1fr); gap: var(--compact-speaker-gap); }
.stage.program-is-compact .program-person { gap: var(--compact-gap); }
.stage.program-is-compact .program-speaker-media { flex-basis: var(--compact-photo-width); width: var(--compact-photo-width); height: var(--compact-photo-height); }
.stage.program-is-compact .time-chip { font-size: var(--compact-tab-font); }
.stage.program-is-compact .program-pending { gap: var(--compact-gap); }
.stage.program-is-compact .program-pending p { font-size: var(--compact-notice-font); }
.stage.program-is-compact .program-pending > img:first-child { width: var(--compact-notice-star); height: var(--compact-notice-star); }
.stage.program-is-compact .program-pending > img:last-child { width: var(--compact-notice-arrow); height: var(--compact-notice-arrow); }

/* Tablets keep the desktop first-screen ticket, with mobile sections below it. */
@media (min-width: 601px) and (max-width: 900px) {
  #viewport { display: block; }
  .mobile-hero { display: none; }
  .stage > .tk, .stage .hero { display: block; }
  /* The desktop ticket sits over the same continuous background as mobile sections. */
  .stage > div:first-child, .stage > .frame-clip { display: none; }
  .stage > :not(.hero):not(.tk):not(.frame-clip):not(.dot9):not(:first-child) { visibility: hidden; }
}

/* Shared presentation precedes the selectable afternoon tracks. */
.program-plenary-panel { padding:64px; border-radius:108.014px; background:rgba(20,58,255,.2); }
.program-plenary-heading { display:flex; align-items:center; gap:24px; margin-bottom:56px; }
.program-plenary-star { width:55.329px; height:55.329px; flex:none; }
.program-plenary-chip { display:flex; align-items:center; gap:10px; padding:12px 28px; border-radius:94px; background:var(--track); color:var(--track-ink); font:500 30px/1.3 var(--font-body); }
.program-plenary-chip i { width:18.785px; height:18.785px; border-radius:50%; background:currentColor; flex:none; }
.program-plenary-dots { flex:1; min-width:0; height:8px; background:radial-gradient(circle,rgba(255,255,255,.45) 3.75px,transparent 4px) left center / 30px 8px space no-repeat; }
.program-plenary-arrow { width:62.93px; height:62.93px; flex:none; }
.program-plenary-break { margin-top:40px; }

.program-plenary-room { flex:none; white-space:nowrap; text-transform:uppercase; font:500 28px/1.3 var(--font-tt); }

.program-pending p { text-transform:none; }

/* Four equal partner cards, following the Figma perforation and star motif. */
.partner-logo-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; }
.partner-logo-card { position:relative; height:387px; min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:24px; padding:68px 24px 42px; border:var(--perforation-width) dashed var(--perforation-color); border-radius:33.353px; color:#fff; text-decoration:none; background:rgba(255,255,255,.025); transition:background-color .2s,border-color .2s; }
.partner-logo-card:hover { background:rgba(255,255,255,.08); }
.partner-logo-card:focus-visible { outline:3px solid #d5ff00; outline-offset:7px; }
.partner-logo-star { flex:none; }
.partner-logo-slot { position:relative; display:flex; align-items:center; justify-content:center; width:100%; height:140px; overflow:hidden; }
.partner-logo-image { display:block; width:280px; max-width:100%; max-height:125px; object-fit:contain; filter:brightness(0) invert(1); }
.partner-logo-card--1c .partner-logo-image { width:280px; height:280px; max-height:none; flex:none; }
.partner-logo-card--skyweb .partner-logo-image { width:300px; height:300px; max-height:none; flex:none; }

/* Optical balance: slightly smaller marks, with a quieter 1C sign. */
.partner-logo-image { transform:scale(.9); }
.partner-logo-card--1c .partner-logo-image { transform:scale(.72); }

/* Center the star and logo together in each partner card. */
.partner-logo-card { justify-content:center; padding-top:0; padding-bottom:0; }

/* Compact sponsor contact: portrait and name on the left, links on the right. */
.partner-contact { display:grid; grid-template-columns:140px minmax(0,1fr); align-items:center; gap:32px; height:272px; padding:36px; border-radius:40px; }
.partner-contact-photo { position:relative; width:140px; height:196px; border-radius:24px; }
.partner-contact-copy { display:grid; grid-template-columns:minmax(0,1fr) 160px; align-items:center; column-gap:36px; row-gap:18px; font-size:24px; }
.partner-contact-intro { grid-column:1; margin-bottom:0 !important; }
.partner-contact-name { grid-column:1; margin-bottom:0 !important; font-size:26px; }
.partner-contact-links { grid-column:2; grid-row:1 / 3; }
.partner-contact-copy a { min-height:36px; }
.partner-contact-copy a + a { margin-top:10px; }

/* Outline-only contact card, with name and contacts on the same row. */
.partner-contact { background:rgba(255,255,255,.025); }
.partner-contact-copy { grid-template-columns:auto minmax(0,1fr); column-gap:30px; }
.partner-contact-intro { grid-column:1 / -1; }
.partner-contact-name { grid-column:1; grid-row:2; }
.partner-contact-links { grid-column:2; grid-row:2; display:flex; align-items:center; gap:22px; }
.partner-contact-copy a { font-size:24px; }
.partner-contact-copy a + a { margin-top:0; }

.partner-contact-copy { row-gap:56px; }

.partner-logo-card { justify-content:center; gap:0; }

.program-session-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; }

@media (min-width: 901px) { [data-session="development-ai-processes"] .program-person-copy .mont-cap { max-width: 24em; } }

/* Кадр Вадима: нижний край выше ремня. */
.program-speaker-media .photo img[src*="program-gallyamshin"] { transform: scale(1.09); transform-origin: center top; }

/* Небольшой воздух над головой в новых портретах. */
.photo:has(> img[src*="program-kirsanov-waist"]),
.photo:has(> img[src*="speaker-shcherbo"]),
.ml-speaker-card:has(.ml-speaker-photo[src*="speaker-shcherbo"]) { background-color: #0b131b; }
.photo > img[src*="program-kirsanov-waist"],
.photo > img[src*="speaker-shcherbo"] { transform: translateY(3%); }
.ml-speaker-photo[src*="speaker-shcherbo"] { object-fit: contain; object-position: center bottom; padding-top: 8px; background: #0b131b; box-sizing: border-box; }

.photo:has(> img[src*="speaker-bryukhanov-crossed"]) { background-color: #0b131b; }
.photo > img[src*="speaker-bryukhanov-crossed"] { transform: translateY(3%); }
.ml-speaker-photo[src*="speaker-bryukhanov-crossed"] { object-fit: contain; object-position: center bottom; padding-top: 8px; background: #0b131b; box-sizing: border-box; }

.program-speaker-media .photo img[src*="program-vdovenko"] { left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; object-position: center center; transform: translate(-9%, 4%) scale(1.25); transform-origin: center center; }
