/* Compact shared scale across every concept and simulated device. */
.stage .hero h1,.stage[data-variant="signal"] .hero h1,.stage[data-variant="studio"] .hero h1{font-size:clamp(34px,4.2cqw,62px);line-height:1.12;letter-spacing:-.035em;font-weight:700;overflow-wrap:break-word}
.stage .section-title h2,.stage .ecosystem-copy h2,.stage .partners h2,.stage .contact h2{font-size:clamp(18.2px,1.82cqw,27.3px);line-height:1.18;letter-spacing:-.025em;font-weight:700}
.stage .role-panel h3{font-size:clamp(24px,2.2cqw,32px);line-height:1.25;letter-spacing:-.02em}
.stage .service h3{font-size:21px;line-height:1.3;letter-spacing:-.02em;font-weight:700}
.stage .event-image h3,.stage[data-variant="signal"] .event-image h3{font-size:clamp(28px,2.6cqw,38px);line-height:1.05;letter-spacing:-.035em;font-weight:700}
.stage .hero,.stage[data-variant="signal"] .hero{padding:55px 0;min-height:0}
.stage .hero-art,.stage[data-variant="signal"] .hero-art{min-height:470px}
.stage .hero-facts{margin-top:32px}
.stage .btn{white-space:normal;text-align:center}
.stage .menu{gap:18px}.stage .nav{gap:20px}
@container(max-width:1000px){.nav .menu,.nav>.btn{display:none}.site-mobile-menu{display:block}}
@container(max-width:790px){
.stage .hero h1,.stage[data-variant="signal"] .hero h1,.stage[data-variant="studio"] .hero h1{font-size:clamp(30px,7.6cqw,44px);line-height:1.15}
.stage .section-title h2,.stage .ecosystem-copy h2,.stage .partners h2,.stage .contact h2{font-size:clamp(16.25px,4.29cqw,22.1px)}
.stage .hero,.stage[data-variant="signal"] .hero,.stage[data-variant="studio"] .hero{padding:34px 0 40px}
.stage .hero-art,.stage[data-variant="signal"] .hero-art,.stage[data-variant="studio"] .hero-art{min-height:320px}
.stage .role-panel h3{font-size:25px}.stage .service h3{font-size:20px}.stage .event-image h3,.stage[data-variant="signal"] .event-image h3{font-size:32px}
}
@media(max-width:500px){.lab{position:relative}.lab-switches{justify-content:flex-start;gap:7px}.lab-group{max-width:100%}.lab-group button{white-space:normal}.lab-compare{min-height:36px}.stage .logo{font-size:22px}}
/* The caption occupies its own row, outside the overlapping posters. */
.stage .hero-art,.stage[data-variant="signal"] .hero-art,.stage[data-variant="studio"] .hero-art{display:flex;flex-direction:column;min-height:0}
.poster-stage{position:relative;height:480px;flex:none;isolation:isolate}
.stage .art-label{position:relative;inset:auto;z-index:auto;min-height:68px;padding:22px 20px 24px;text-align:center;line-height:1.6;letter-spacing:.12em;color:#d4e1d9;border-top:1px solid #ffffff1f}
/* Original illustration geometry; only placeholder text is replaced. */
.screen-row{min-width:0}.screen-row .talk-title{display:block;min-width:0;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.phone .thumb{display:flex;align-items:center;padding:8px}
.phone-talk{font-size:10px;line-height:1.3;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}
.phone .secondary-talk{height:26px;margin:10px 0}
/* Identical typeface, size, weight and rhythm on all three brand posters. */
.stage .poster strong{font-size:clamp(24px,2.5cqw,36px);font-weight:700;line-height:1.04;letter-spacing:-.045em}
.stage[data-variant] .poster.c{width:58%;left:9%}
@container(max-width:790px){.poster-stage{height:340px}.stage .art-label{min-height:68px;padding:20px 16px;font-size:10px}.stage .poster strong{font-size:clamp(23px,5.8cqw,30px)}}
@container(max-width:470px){.poster-stage{height:320px}.stage .art-label{letter-spacing:.08em}}
/* Let narrow layouts shrink to their container instead of their text width. */
.stage .hero>*,.stage .audience>*,.stage .ecosystem>*,.stage .contact-grid>*{min-width:0}
@container(max-width:790px){
.stage .hero,.stage[data-variant="signal"] .hero,.stage[data-variant="studio"] .hero,.stage .audience,.stage .ecosystem,.stage .contact-grid{grid-template-columns:minmax(0,1fr)}
.stage .role-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.stage .role{min-width:0;gap:8px;overflow-wrap:anywhere}
.stage .nav{gap:8px}.stage .nav .logo{min-width:0;flex-shrink:1}.stage .site-mobile-menu{flex-shrink:0;white-space:nowrap}
.stage .logo small{font-size:8px;letter-spacing:0}
.stage .wrap{margin-inline:auto}.stage .section-title h2,.stage .role-panel h3{overflow-wrap:anywhere}
}
@container(max-width:350px){.stage .nav .logo{font-size:20px;gap:7px}.stage .site-mobile-menu{font-size:12px;padding:8px}.stage .logo small{font-size:7px}}
/* Use one Cyrillic-capable face for the complete founding-year label. */
.stage .event-image .e-index span:last-child{font-family:stolzl,system-ui,"Segoe UI",Arial,sans-serif;font-weight:400;letter-spacing:.04em}

/* Keep the illustration close to the upper edge of its section. */
.stage #platform.section{padding-top:12px}
.stage .ecosystem{align-items:start}
.stage .ecosystem-visual{padding-top:10px}
.stage .screen{margin-top:0}
.stage .section-title>div{min-width:0;flex:1}
.stage .section-title>p{flex:0 1 32%}
/* Seamless ticker with an explicit pause control. */
.stage .strip{position:relative;padding:15px 0}
.ticker-window{overflow:hidden}
.ticker-track{display:flex;width:max-content;animation:itconf-ticker 28s linear infinite}
.ticker-group{display:flex;flex:none;align-items:center;gap:40px;padding-right:40px;font-size:11px;letter-spacing:.16em;font-weight:700;white-space:nowrap}
.ticker-group span{display:inline-flex;align-items:center;gap:12px}
.strip:hover .ticker-track,.strip:focus-within .ticker-track{animation-play-state:paused}
@keyframes itconf-ticker{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none}.ticker-window{overflow:auto;margin-right:0}.ticker-track .ticker-group:nth-child(2){display:none}}
@container(max-width:790px){.stage #events h2{text-wrap:balance}.stage #events h2 br{display:none}}


/* Restore the original heading scale, keeping whole words together. */
.stage #roleTitle{white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:none}
.stage #process.section{padding-bottom:24px}
@container(max-width:470px){.stage .role-panel{padding-inline:18px}}
@container(max-width:350px){.stage .role-panel{padding-inline:10px}}
