/* ── part: globals/keyframes ── */
/**
 * globals/keyframes
 *
 * Decomposed from Craft's base.css + media.css — 38 rules, 3476 bytes of
 * declarations. Generated by AMS/docs/css-migration/decompose.py; see
 * AMS/docs/css-quarantine.md for what was removed before the split.
 *
 * RULES ARE IN ORIGINAL DOCUMENT ORDER — every base.css rule before every
 * media.css rule. That ordering is what preserves the cascade: 2 selector(s)
 * in this part are defined more than once and rely on it. Do not reorder.
 */

/* ── from base.css ── */
@keyframes announcement{0%{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes announcementHide{0%{transform:translateY(0)}to{transform:translateY(200%)}}
@keyframes spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
@keyframes marqueeLeft{0%{transform:translate3d(-192px,0,0)}to{transform:translateZ(0)}}
@keyframes marqueeRight{0%{transform:translateZ(0)}to{transform:translate3d(-128px,0,0)}}
@keyframes modalStep{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}
@keyframes modalWindow{0%{transform:scale(.9)}to{transform:scale(1)}}
@keyframes navGrid{0%{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes navGridContent{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
@keyframes navMenuLinkTail{0%{transform:translateY(0)}to{transform:translateY(-6px)}}
@keyframes navSubmenuMobile{0%{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}to{--bg-opacity:1;background-color:#1c1e24;background-color:rgba(28,30,36,var(--bg-opacity))}}
@keyframes navSubmenuItemMobile{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
@keyframes navSubmenu{0%{transform:translateY(-8px)}to{transform:translateY(0)}}
@keyframes navSubmenuTail{0%{transform:translateY(6px)}to{transform:translateY(0)}}
@keyframes navIconPop{0%,to{transform:scale(1)}25%{transform:scale(1.5)}}
@keyframes tabPanel{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes spin{to{transform:rotate(1turn)}}
@keyframes ping{75%,to{transform:scale(2);opacity:0}}
@keyframes pulse{50%{opacity:.5}}
@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}

/* ── from media.css ── */
@keyframes authItem{0%{opacity:0;transform:translate3d(0,24px,0)}to{opacity:1;transform:translateZ(0)}}
@keyframes authPasswordError{20%,60%{transform:translate3d(-6px,0,0)}40%,80%{transform:translate3d(6px,0,0)}}
@keyframes heartbeat{0%{opacity:1}52%{opacity:1}64%{opacity:0}76%{opacity:1}88%{opacity:0}to{opacity:1}}
@keyframes in_left{0%{transform:translate3d(-100%,0,0);-webkit-transform:translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0);-o-transform:translate3d(-100%,0,0)}to{transform:translateZ(0);-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-o-transform:translateZ(0)}}
@keyframes out_left{0%{transform:translateZ(0);-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-o-transform:translateZ(0)}to{transform:translate3d(-100%,0,0);-webkit-transform:translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0);-o-transform:translate3d(-100%,0,0)}}
@keyframes in_right{0%{transform:translate3d(100%,0,0);-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);-o-transform:translate3d(100%,0,0)}to{transform:translateZ(0);-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-o-transform:translateZ(0)}}
@keyframes out_right{0%{transform:translateZ(0);-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-o-transform:translateZ(0)}to{transform:translate3d(100%,0,0);-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);-o-transform:translate3d(100%,0,0)}}
@keyframes gallery-inLeft{0%{transform:scale(.75) translateX(-80%);opacity:0}to{transform:scale(1) translateX(0);opacity:1}}
@keyframes gallery-inRight{0%{transform:scale(.75) translateX(80%);opacity:0}to{transform:scale(1) translateX(0);opacity:1}}
@keyframes modalStepOut{0%{opacity:1;transform:translateY(0);background:rgba(80,86,102,.95)}to{opacity:0;transform:translateY(16px);background:transparent}}
@keyframes fadeOut{0%{background:rgba(80,86,102,.95)}to{background:transparent}}
@keyframes articleBlur{0%{filter:blur(3px)}to{filter:blur(0)}}
@keyframes modalStep{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{0%{-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}}
@keyframes modalWindow{0%{transform:scale(.9)}to{transform:scale(1)}}
@keyframes loading-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
@keyframes loading{0%{background-position:100% 0}to{background-position:0 0}}
@keyframes mainLogoHover{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}

/* ── part: globals/third-party ── */
/**
 * globals/third-party
 *
 * Decomposed from Craft's base.css + media.css — 75 rules, 5350 bytes of
 * declarations. Generated by AMS/docs/css-migration/decompose.py; see
 * AMS/docs/css-quarantine.md for what was removed before the split.
 *
 * RULES ARE IN ORIGINAL DOCUMENT ORDER — every base.css rule before every
 * media.css rule. That ordering is what preserves the cascade: 6 selector(s)
 * in this part are defined more than once and rely on it. Do not reorder.
 */

/* ── from base.css ── */
.jwplayer-placeholder{padding-bottom:1rem}

/* ── from media.css ── */
.schedule_list li.open i.fa-chevron-down{transform:rotate(180deg)}
i.fa.fa-chevron-down{padding:12px;background:#f1f1f1;border-radius:50%;color:grey;font-size:10px;margin:-6px -6px 0 0}
.gallery{margin-top:2em;margin-bottom:4em!important}
@media (max-width:767px){
.gallery{margin:2em -1.5rem 4em}
}
.gallery .photos{background-color:#f0f0f0;background-size:100% 100%;display:table;height:35vw;min-height:240px;overflow:hidden;position:relative;width:100%}
.gallery .photos .photos-wrap{display:inline}
.gallery .photos .photos-navigate{transition:$transition-duration;background-position:50%;background-size:18px 34px;background-repeat:no-repeat;cursor:pointer;display:block;height:100%;opacity:.1;position:absolute;top:0;width:5em;z-index:11}
.gallery .photos .photos-navigate.photos-navigate--prev{background-image:url(https://media.thenextweb.com/paginate-prev-white.svg);left:0}
.gallery .photos .photos-navigate.photos-navigate--next{background-image:url(https://media.thenextweb.com/paginate-next-white.svg);right:0}
.gallery .photos .photos-navigate.photos-navigate--hide{opacity:0!important;pointer-events:none}
.gallery .photos:hover .photos-navigate{opacity:.5}
.gallery .photos:hover .photos-navigate:hover{opacity:1}
.gallery .photos .photo{display:flex;align-items:center;justify-content:center;bottom:0;left:0;line-height:0;position:absolute;right:0;top:0;visibility:hidden;z-index:9}
.gallery .photos .photo-credit{background:rgba(0,0,0,.5);border-radius:3px;bottom:24px;color:#fff;font-size:12px;left:24px;line-height:1;padding:4px 8px;position:absolute}
.gallery .photos .photo-credit:before{content:"©";margin-right:4px}
.gallery .photos .photo.photo--active{visibility:visible;z-index:10}
.gallery .thumbs{display:grid;background-color:#fff;margin:0;overflow:hidden;text-align:center;max-width:100%;max-height:340px;align-content:space-evenly;align-items:center;--columns:3;--rows:2;-moz-column-gap:2px;column-gap:2px;row-gap:2px}
@media (max-width:768px){
.gallery .thumbs{--columns:2;--rows:3;max-height:unset;background:#fff}
}
.gallery .thumbs li{display:inline-block;margin:0;padding:0}
.gallery .thumbs li:before{visibility:hidden}
.gallery .thumbs li a{display:block;box-shadow:none!important;padding:0!important}
.gallery .thumbs li a img{transition-duration:.15s;border:0;margin:0!important;-o-object-fit:cover;object-fit:cover}
.gallery .thumbs li a.selected:hover img,.gallery .thumbs li a.selected img,.gallery .thumbs li a:hover img{box-shadow:none!important}
.gallery.is-attached .thumbs{visibility:visible}
.galleryPreview{position:fixed;z-index:60!important;background:rgba(80,86,102,.9607843137254902) 0 0 no-repeat padding-box;top:0;left:0;box-shadow:0 0 10px transparent;height:100%;width:100%;display:flex;justify-content:center;align-items:center;-webkit-appearance:none}
@media (max-width:768px){
.galleryPreview{display:block;overflow:scroll;-webkit-overflow-scrolling:touch}
}
.galleryMain{display:none;align-items:center;background-color:#000;max-width:960px;max-height:650px;width:100%;height:100%;position:relative;overflow-x:hidden;margin:20px}
@media (max-width:768px){
.galleryMain{flex-direction:column;max-height:100%;margin:0;background-color:#fff;align-items:center}
}
.galleryImageContainer{display:flex;flex-direction:column;justify-content:center;width:100%;max-width:960px;height:100%;background-color:#000;position:relative;z-index:0!important;overflow-x:hidden}
@media (max-width:768px){
.galleryImageContainer{height:375px;min-height:375px}
}
.galleryImage{max-height:523px;width:100%;height:100%;background-position:50%;background-size:contain;-o-object-fit:contain;object-fit:contain;position:relative;background-repeat:no-repeat}
.galleryImage.photo--in-left{z-index:0!important;display:flex;animation:in_left .25s ease-in-out forwards;-webkit-animation:in_left .25s ease-in-out forwards;-moz-animation:in_left .25s ease-in-out forwards;-o-animation:in_left .25s ease-in-out forwards}
.galleryImage.photo--out-left{z-index:0!important;animation:out_left .25s ease-in-out forwards;-webkit-animation:out_left .25s ease-in-out forwards;-moz-animation:out_left .25s ease-in-out forwards;-o-animation:out_left .25s ease-in-out forwards}
.galleryImage.photo--in-right{display:flex;z-index:0!important;animation:in_right .25s ease-in-out forwards;-webkit-animation:in_right .25s ease-in-out forwards;-moz-animation:in_right .25s ease-in-out forwards;-o-animation:in_right .25s ease-in-out forwards}
.galleryImage.photo--out-right{z-index:0!important;animation:out_right .25s ease-in-out forwards;-webkit-animation:out_right .25s ease-in-out forwards;-moz-animation:out_right .25s ease-in-out forwards;-o-animation:out_right .25s ease-in-out forwards}
.gallerySideInfo{max-width:30%;width:100%;height:100%;background:#fff;position:relative;display:flex;flex-direction:column;justify-content:space-between;padding-bottom:60px;z-index:100!important}
@media (max-width:768px){
.gallerySideInfo{max-width:100%;position:fixed;bottom:0;height:auto;padding-bottom:0}
}
.captionDiv .galleryProgress{font-family:Graphik,sans-serif;font-weight:500;margin-bottom:5px}
#modal-container.spkrModal.fade-out{animation:modalWindowOut .25s ease-out both}
.twitter-icon-container{background:#fff;width:33px;height:33px;display:flex;justify-content:center;align-items:center;padding:.35em .35em .35em .45em;border-radius:50%;box-shadow:0 2px 8px rgba(0,0,0,.25098039215686274)}
.twitter-icon-container:hover svg>path{fill:#000}
.hs-error-msg{font-size:12px;display:flex;color:red}
@media (max-width:767px){
.hs-error-msg--invalidInput{position:absolute!important;left:29px!important}
}
input[type=email].hs-input,input[type=email].hs-input.invalid.error{width:100%;padding-left:10px}
.hs-form-booleancheckbox-display{display:flex!important}
.legal-consent-container .hs-form-booleancheckbox-display p{margin-left:5px!important;font-size:12px}
.legal-consent-container .hs-form-booleancheckbox-display p.checkboxSpan{margin-left:10px!important}
@media (max-width:767px){
.legal-consent-container .hs-form-booleancheckbox-display p.checkboxSpan strong{display:none!important}
}
.tablepress-table-description{clear:both;display:block}
.tablepress{border-collapse:collapse;border-spacing:0;width:100%;margin-bottom:1em;border:none}
.tablepress td,.tablepress th{padding:8px;border:none;background:none;text-align:left;float:none!important}
.tablepress tbody td{vertical-align:top}
.tablepress tbody td,.tablepress tfoot th{border-top:1px solid #ddd}
.tablepress tbody tr:first-child td{border-top:0}
.tablepress thead th{border-bottom:1px solid #ddd}
.tablepress tfoot th,.tablepress thead th{background-color:#505666;color:#fff;font-weight:700;vertical-align:middle}
.tablepress .odd td{background-color:#f9f9f9}
.tablepress .even td{background-color:#fff}
.tablepress .row-hover tr:hover td{background-color:#f3f3f3}
.tablepress img{margin:0;padding:0;border:none;max-width:none}
.dataTables_wrapper .tablepress{clear:both;margin:0!important}
.tablepress .sorting,.tablepress .sorting_asc,.tablepress .sorting_desc{position:relative;padding-right:20px;cursor:pointer;outline:none}
.tablepress .sorting:after,.tablepress .sorting_asc:after,.tablepress .sorting_desc:after{font-weight:400;font-size:14px;-webkit-font-smoothing:antialiased;position:absolute;top:0;bottom:0;left:auto;right:6px;margin:auto;height:14px;line-height:1}
.tablepress .sorting:after{content:"\f0dc"}
.tablepress .sorting_asc:after{content:"\f0d8";padding:0 0 2px}
.tablepress .sorting_desc:after{content:"\f0d7"}
.tablepress .sorting:hover,.tablepress .sorting_asc,.tablepress .sorting_desc{background-color:#049cdb}
.dataTables_scrollBody .tablepress thead th:after{content:""}
.pswp .pswp__button{background-image:url(/conference/assets/img/icon/default-skin.png)}
@media (-webkit-min-device-pixel-ratio:1.1),(-webkit-min-device-pixel-ratio:1.09375),(min-resolution:1.1dppx),(min-resolution:105dpi){
.pswp.pswp--svg .pswp__button{background-image:url(/conference/assets/img/icon/default-skin.svg)}
}
.wp-video{width:auto!important}
.wp-video-shortcode{width:100%!important;padding:3em 0}
figure.wp-block-embed.is-type-video{padding:3em 0}
figure.wp-block-embed.is-type-video>.wp-block-embed__wrapper{position:relative;overflow:hidden;width:100%;padding-top:56.25%}

/* ── part: parts/bodySpeakers ── */
/**
 * parts/bodySpeakers
 *
 * Decomposed from Craft's base.css + media.css — 3 rules, 132 bytes of
 * declarations. Generated by AMS/docs/css-migration/decompose.py; see
 * AMS/docs/css-quarantine.md for what was removed before the split.
 *
 * RULES ARE IN ORIGINAL DOCUMENT ORDER — every base.css rule before every
 * media.css rule. That ordering is what preserves the cascade: 0 selector(s)
 * in this part are defined more than once and rely on it. Do not reorder.
 */

/* ── from base.css ── */
@media (max-width:767px){
.c-bodySpeakers__wrapper{padding:0 .5rem}
}

/* ── from media.css ── */
.c-bodySpeakers__list{margin-top:-1.5rem;margin-left:-.25rem;margin-right:-.25rem}
.c-bodySpeakers__list .o-grid__col{padding-left:.25rem;padding-right:.25rem;margin-top:1.5rem}

/* ── part: parts/brandIntro ── */
/**
 * parts/brandIntro
 *
 * Decomposed from Craft's base.css + media.css — 15 rules, 494 bytes of
 * declarations. Generated by AMS/docs/css-migration/decompose.py; see
 * AMS/docs/css-quarantine.md for what was removed before the split.
 *
 * RULES ARE IN ORIGINAL DOCUMENT ORDER — every base.css rule before every
 * media.css rule. That ordering is what preserves the cascade: 3 selector(s)
 * in this part are defined more than once and rely on it. Do not reorder.
 */

/* ── from media.css ── */
.c-brandIntro{border-radius:.25rem;padding:3rem 0;text-align:center}
@media (min-width:768px){
.c-brandIntro{padding:3rem;text-align:left}
}
@media (min-width:1024px){
.c-brandIntro{padding:4rem 0}
.c-brandIntro .o-grid{align-items:flex-end}
}
.c-brandIntro__heading{margin-bottom:1.5rem;font-size:3rem;line-height:1}
@media (min-width:768px){
.c-brandIntro__heading{margin-bottom:0;padding-right:1rem;font-size:4rem}
}
@media (min-width:1024px){
.c-brandIntro__heading{font-size:6rem}
}
.c-brandIntro__text{margin-bottom:1.5rem;font-size:1.125rem}
@media (min-width:1024px){
.c-brandIntro__text{margin-bottom:2rem;font-size:32px}
}
.c-nextHomeHeaderGrid .c-brandIntro__text{display:none}
@media (min-width:1024px){
.c-nextHomeHeaderGrid .nxtHome .c-brandIntro__text{display:block;width:50%;margin-top:3%}
.c-nextHomeHeaderGrid .nxtHome .c-brandIntro__text h1{margin:0;text-align:right}
}
.c-nextRelatedGrid .c-brandIntro__text{display:none}
@media (min-width:1024px){
.c-nextRelatedGrid .nxtHome .c-brandIntro__text{display:block;width:25%;margin-top:3%}
}
.nextHome .c-brandIntro__text h1{color:rgba(80,86,102,var(--text-opacity));font:inherit;text-align:center}

/* ── part: parts/footer ── */
/**
 * parts/footer
 *
 * Decomposed from Craft's base.css + media.css — 45 rules, 3082 bytes of
 * declarations. Generated by AMS/docs/css-migration/decompose.py; see
 * AMS/docs/css-quarantine.md for what was removed before the split.
 *
 * RULES ARE IN ORIGINAL DOCUMENT ORDER — every base.css rule before every
 * media.css rule. That ordering is what preserves the cascade: 10 selector(s)
 * in this part are defined more than once and rely on it. Do not reorder.
 */

/* ── from base.css ── */
.c-footer{padding:4rem 0;--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}
.c-footer__logoContact{display:flex;flex-direction:column;justify-content:space-between;height:100%}
.c-footer__logo{display:block;width:10rem;margin-bottom:1rem}
.c-footer__logo svg{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity));fill:currentColor}
.c-footer__tagline{margin-bottom:2rem;font-size:1.5rem}
.c-footer__contact{display:flex;margin-bottom:.5rem}
.c-footer__contactItem:not(:first-child){margin-left:1rem}
.c-footer__contactLink{display:block;opacity:.5;transition-duration:.15s}
.c-footer__contactLink:hover{opacity:1}
.c-footer__contactIcon{fill:currentColor;width:1.5rem;height:1.5rem}
.c-footer__contactIcon,.c-footer__heading{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}
.c-footer__heading{margin-bottom:.5rem;font-size:1.5rem}
.c-footer__menu{line-height:1.75}
.c-footer__menuLink{color:#6de;box-shadow:0 1px 0 rgba(0,204,204,0);transition-duration:.15s}
.c-footer__menuLink:hover{box-shadow:inset 0 1px 0 rgb(var(--color-accent)/50%);--text-opacity:1;color:#0cc;color:rgba(0,204,204,var(--text-opacity))}
.c-footer__submenu{padding-left:1rem;--border-opacity:1;border-color:#0cc;border-left:1px;border-color:rgba(0,204,204,var(--border-opacity));border-style:solid;--border-opacity:0.5}
.c-footer__legal{margin-top:2rem;padding-top:2rem;--border-opacity:1;border-color:#345;border-color:rgba(51,68,85,var(--border-opacity));border-top:1px rgba(51,68,85,var(--border-opacity));border-style:solid;--text-opacity:1;color:#89a;color:rgba(136,153,170,var(--text-opacity));font-size:.875rem;line-height:1.75;text-align:center}
.c-footer__legalHeart{--text-opacity:1;color:#f42;color:rgba(255,68,34,var(--text-opacity))}
.c-footer__legalStackpath{display:inline;height:10px}

/* ── from media.css ── */
.c-footer__contact{margin-left:-.5rem;margin-right:-.5rem}
.c-footer__contactItem{padding-left:.25rem;padding-right:.25rem}
.c-footer__contactItem:not(:first-child){margin-left:0}
.c-footer__contactLink{padding:.25rem;border-radius:.25rem;opacity:1;transition:ox-shadow .25s ease}
@media (prefers-reduced-motion){
.c-footer__contactLink{transition:none}
}
.c-footer__contactLink:focus-visible{box-shadow:0 0 0 .125rem #fff,inset 0 0 0 .125rem #fff}
.c-footer__contactLink svg{opacity:.5;transition:opacity 125ms ease}
.c-footer__contactLink svg:hover{opacity:1}
.c-newsletters__social .c-footer__contact{justify-content:center;margin-bottom:0}
.c-newsletters__social .c-footer__contact .c-footer__contactLink{opacity:1}
.c-newsletters__social .c-footer__contact .c-footer__contactLink .c-footer__contactIcon{--text-opacity:1;color:#89a;color:rgba(136,153,170,var(--text-opacity));fill:currentColor;transition-property:background-color,border-color,color,fill,stroke;transition-timing-function:cubic-bezier(0,0,.2,1);transition-duration:.2s}
.c-newsletters__social .c-footer__contact .c-footer__contactLink .c-footer__contactIcon:hover{--text-opacity:1;color:#345;color:rgba(51,68,85,var(--text-opacity))}
.site-tnwNext .c-footer__menuLink{position:relative;display:inline-block;padding-top:.25rem;padding-bottom:.25rem;color:#6de;line-height:1.25rem}
.site-tnwNext .c-footer__menuLink:after{content:"";position:absolute;top:0;left:-.25rem;right:-.25rem;bottom:0;border-radius:.25rem;pointer-events:none;transition:color 125ms ease,box-shadow .25s ease}
@media (prefers-reduced-motion){
.site-tnwNext .c-footer__menuLink:after{transition:none}
}
.site-tnwNext .c-footer__menuLink:hover{box-shadow:inset 0 1px 0 rgba(102,221,238,.5)}
.site-tnwNext .c-footer__menuLink:focus-visible:after{box-shadow:0 0 0 .125rem #6644e1,inset 0 0 0 .125rem #6644e1}
.c-footer{z-index:3;position:relative;content-visibility:auto}
.c-footer__legal a{display:inline-block;padding:.25rem;margin-bottom:1.25rem;border-radius:.25rem;line-height:1.125rem;text-align:center;transition:color 125ms ease,box-shadow .25s ease}
@media (prefers-reduced-motion){
.c-footer__legal a{transition:none}
}
.c-footer__legal a:focus-visible{box-shadow:0 0 0 .125rem #6644e1,inset 0 0 0 .125rem #6644e1}
.c-footer__legal a svg{display:inline-block;height:1.125rem;vertical-align:top}
.c-footer__menuLink{color:#6de}
.c-footer__menuLink:hover{box-shadow:0 1px 0 rgba(102,221,238,.5)!important}
.c-footer__heading{margin-bottom:.5rem;font-size:16px;font-family:Graphik;font-weight:500;font-feature-settings:"ss01" 1,"ss02" 1,"ss03" 1;line-height:1.5;text-transform:none}
.c-footer__tagline{margin-bottom:2rem;font-size:1.5em;font-family:Graphik;font-weight:400;font-feature-settings:"ss01" 1,"ss02" 1,"ss03" 1}

/* ── part: parts/showcaseTrending ── */
/**
 * parts/showcaseTrending
 *
 * Decomposed from Craft's base.css + media.css — 11 rules, 548 bytes of
 * declarations. Generated by AMS/docs/css-migration/decompose.py; see
 * AMS/docs/css-quarantine.md for what was removed before the split.
 *
 * RULES ARE IN ORIGINAL DOCUMENT ORDER — every base.css rule before every
 * media.css rule. That ordering is what preserves the cascade: 3 selector(s)
 * in this part are defined more than once and rely on it. Do not reorder.
 */

/* ── from media.css ── */
.c-showcaseTrending .showcaseLabel{z-index:1;left:0}
.c-showcaseTrending .trendingIndex{position:absolute;bottom:0;font-family:Shentox;color:#64f;font-size:20px}
@media (min-width:375px){
.c-showcaseTrending .trendingIndex{bottom:-.25em;margin-right:.75em}
}
@media (min-width:768px){
.c-showcaseTrending .trendingIndex{bottom:0;margin-right:1.5em}
}
@media (min-width:1024px){
.c-showcaseTrending .trendingIndex{font-size:2rem;margin-right:0;line-height:.76}
}
.c-showcaseTrending .c-articleGridTrendingListImage{-webkit-clip-path:polygon(0 0,100% 0,100% 50%,100% 100%,33% 100%,0 66%);clip-path:polygon(0 0,100% 0,100% 50%,100% 100%,33% 100%,0 66%)}
@media (min-width:1024px){
.c-showcaseTrending .c-articleGridTrendingListImage{-webkit-clip-path:polygon(0 0,100% 0,100% 50%,100% 100%,21% 100%,0 61%);clip-path:polygon(0 0,100% 0,100% 50%,100% 100%,21% 100%,0 61%)}
}
.c-showcaseTrending .o-wrapper.o-wrapper--wide{padding-left:.5em;padding-right:.5em}
.c-showcaseTrending{padding:3em 0}
@media (min-width:768px){
.c-showcaseTrending{padding:3em 0}
}
.c-showcaseTrending .c-trending-articles{max-width:100%;padding:0}

/* ── part: parts/tabs ── */
/**
 * parts/tabs
 *
 * Decomposed from Craft's base.css + media.css — 47 rules, 3313 bytes of
 * declarations. Generated by AMS/docs/css-migration/decompose.py; see
 * AMS/docs/css-quarantine.md for what was removed before the split.
 *
 * RULES ARE IN ORIGINAL DOCUMENT ORDER — every base.css rule before every
 * media.css rule. That ordering is what preserves the cascade: 8 selector(s)
 * in this part are defined more than once and rely on it. Do not reorder.
 */

/* ── from base.css ── */
.c-tabs__list{display:flex;margin-bottom:1.5rem;box-shadow:inset 0 -2px 0 rgba(227,227,228,.5)}
@media (min-width:768px){
.c-tabs__list{margin-bottom:2rem}
}
.c-tabs__tab{position:relative;flex:1 1 0%;padding:0 .75rem 1rem;background-color:transparent;border-style:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:center;font-weight:500}
@media (min-width:768px){
.c-tabs__tab{flex:none;padding:0 20px 1rem}
}
.c-tabs__tab:after{position:absolute;bottom:0;left:0;width:100%;height:.125rem;--bg-opacity:1;background-color:#c09;background-color:rgba(204,0,153,var(--bg-opacity));transition-duration:.15s;transition-timing-function:cubic-bezier(0,0,.2,1);content:"";transform:scaleX(0)}
.c-tabs__tab:hover,.c-tabs__tab[aria-selected=true]{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}
.c-tabs__tab[aria-selected=true]:after{transform:scaleX(1)}
.c-tabs__panel{display:block;animation:tabPanel .3s ease-out}
.c-tabs__panelQuestion{position:relative;z-index:10;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;cursor:pointer;line-height:1;font-size:1.125rem;--text-opacity:1;color:#345;color:rgba(51,68,85,var(--text-opacity));line-height:1.2}
.c-tabs__panelQuestion:hover{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}
@media (min-width:768px){
.c-tabs__panelQuestion{font-size:1.25rem}
}
.c-tabs__panelAnswer{display:block;position:absolute;top:2rem;transition-property:opacity;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);opacity:0;padding-left:1rem}
@media (min-width:768px){
.c-tabs__panelAnswer{font-size:1.125rem}
}
.c-tabs__panelAnswer:before{position:absolute;left:0;height:100%;width:1px;--bg-opacity:1;background-color:#e3e3e4;background-color:rgba(227,227,228,var(--bg-opacity));content:""}
.c-tabs__panel[aria-hidden=true]{display:none}
.c-tabs--centered .c-tabs__list{justify-content:center}

/* ── from media.css ── */
.c-tabs{display:flex;flex-direction:column}
.c-tabs:before{content:"";position:absolute;left:0;right:0;height:2px;margin-top:3.375rem;background-color:rgba(227,227,228,.5)}
.c-tabs__list{max-width:100%;box-shadow:none;scrollbar-width:none;overflow:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
.c-tabs__list::-webkit-scrollbar{display:none}
.tnw-schedule .tnwSchedule>.c-tabs__list .c-tickets__tabList{text-align:center}
.c-tabs--centered .c-tabs__list{justify-content:flex-start;margin-left:auto;margin-right:auto}
.c-tabs__tab{position:relative;padding:1rem 1.25rem}
.c-tabs__tab:before{content:"";position:absolute;top:.5rem;left:.5rem;right:.5rem;bottom:.5rem;border-radius:.25rem;transition:color 125ms ease,box-shadow .25s ease}
@media (prefers-reduced-motion){
.c-tabs__tab:before{transition:none}
}
.c-tabs__tab:focus-visible:before{box-shadow:0 0 0 .125rem #6644e1,inset 0 0 0 .125rem #6644e1}
.c-tabs__tab.c-tickets__tab{text-align:center}
.c-tickets .c-tabs__tab:after{background-color:#6de}
.c-tabs__nav{position:absolute;width:100%;z-index:1;display:none}
.c-tabs__navButton{position:absolute;top:0;width:3.375rem;height:3.375rem;background-color:transparent;opacity:0;pointer-events:none;transition:opacity .15s ease-out}
.c-tabs__navButton:before{content:"";position:absolute;top:50%;left:50%;right:-.375rem;width:.75rem;height:.75rem;margin-top:-.375rem;border-style:solid;border-width:1px;opacity:.5;transform:rotate(45deg)}
.c-tabs__navButton--to-left{left:0;background-image:linear-gradient(270deg,hsla(0,0%,100%,0),#fff 1.5rem)}
.c-tabs__navButton--to-left:before{margin-left:-.875rem;border-color:transparent transparent #333c53 #333c53}
.c-tabs__navButton--to-right{right:0;background-image:linear-gradient(90deg,hsla(0,0%,100%,0),#fff 1.5rem)}
.c-tabs__navButton--to-right:before{margin-left:.125rem;border-color:#333c53 #333c53 transparent transparent}
.c-tabs--has-overflow .c-tabs__nav{display:block}
.c-tabs--has-overflow.c-tabs--has-scroll-left .c-tabs__navButton--to-left,.c-tabs--has-overflow .c-tabs__navButton--to-right{opacity:1;pointer-events:auto}
.c-tabs--has-overflow.c-tabs--is-scroll-end .c-tabs__navButton--to-right{opacity:0;pointer-events:none}
.c-tabs>.o-wrapper{width:100%}
.c-tabs__panelQuestion{font-feature-settings:"ss01" 1,"ss02" 1,"ss03" 1;font-family:Graphik,sans-serif;font-weight:500;letter-spacing:0;text-transform:none}
.c-tabs__panelQuestion:before{content:"";position:absolute;top:-.5rem;left:-.5rem;right:-.5rem;bottom:-.5rem;border-radius:.25rem;transition:color 125ms ease,box-shadow .25s ease}
@media (prefers-reduced-motion){
.c-tabs__panelQuestion:before{transition:none}
}
.c-tabs__panelQuestion:focus-visible:before{box-shadow:0 0 0 .125rem #6644e1,inset 0 0 0 .125rem #6644e1}
.tnw-schedule .c-tabs__tab:after{background-color:#0cc}
@media (min-width:375px){
.tnw-schedule .c-tabs__tab.c-tickets__tab{text-align:center}
}
.c-tabs__tab:after{background-color:#64f}
@media (max-width:1023px){
.c-tabs__list--mobile{justify-content:flex-start!important;overflow-x:scroll!important}
}

/* ── part: parts/topic ── */
/**
 * parts/topic
 *
 * Decomposed from Craft's base.css + media.css — 7 rules, 620 bytes of
 * declarations. Generated by AMS/docs/css-migration/decompose.py; see
 * AMS/docs/css-quarantine.md for what was removed before the split.
 *
 * RULES ARE IN ORIGINAL DOCUMENT ORDER — every base.css rule before every
 * media.css rule. That ordering is what preserves the cascade: 1 selector(s)
 * in this part are defined more than once and rely on it. Do not reorder.
 */

/* ── from media.css ── */
.c-topic__header{padding-top:3rem;padding-left:0;padding-right:0;--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity));--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity));padding-bottom:calc(176px + 3rem);min-height:344px}
.c-topic__header+.o-wrapper{margin-top:-176px}
.c-topic__headerBackdrop{background-image:url(https://static.thenextweb.com/assets/next/img/placeholder/media/topic-header-backdrop.jpg);height:200%}
.c-topic__subheading{color:#6de}
.c-topic__heading{margin:0;--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}
.c-topic__desc{font-weight:500;margin-top:1rem}
.c-topic__subheading{color:#6de!important;font-family:Shentox,sans-serif;letter-spacing:.08em;line-height:1;text-transform:uppercase}

/* ── moved out of views/topics.php's inline styles ─────────────────────────
   See AMS/docs/inline-css-migration.md.

   The sticky wrapper around the sidebar ad. parts/split already has
   .c-split__sticky, but at top:7.5rem rather than 2rem, so reusing it would
   have moved the ad. This div carried no class at all, hence a new one. */
.c-topic__stickyAside{position:sticky;top:2rem}

/* ── part: parts/usps ── */
/**
 * parts/usps
 *
 * Decomposed from Craft's base.css + media.css — 24 rules, 872 bytes of
 * declarations. Generated by AMS/docs/css-migration/decompose.py; see
 * AMS/docs/css-quarantine.md for what was removed before the split.
 *
 * RULES ARE IN ORIGINAL DOCUMENT ORDER — every base.css rule before every
 * media.css rule. That ordering is what preserves the cascade: 4 selector(s)
 * in this part are defined more than once and rely on it. Do not reorder.
 */

/* ── from media.css ── */
.c-usps__heading{font-family:Graphik Wide,sans-serif!important}
.c-usps__intro{margin-top:1.5rem;text-align:center;font-family:Graphik,sans-serif;letter-spacing:-.24px}
.c-usps__grid--1{grid-template-columns:repeat(1,1fr)}
.c-usps__grid--2{grid-template-columns:repeat(2,1fr)}
.c-usps__grid--3{grid-template-columns:repeat(3,1fr)}
.c-usps__grid--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:1023px){
.c-usps__grid--3,.c-usps__grid--4{grid-template-columns:repeat(2,1fr)}
}
.c-usps__usp--image{left:0;height:120px;width:120px}
@media (max-width:1023px){
.c-usps__usp--image{left:0;right:0;margin-left:auto!important;margin-right:auto!important}
}
.c-usps__usp--title{margin-top:2rem;margin-bottom:2rem;font-family:Graphik,sans-serif;font-size:1.5rem;text-transform:none;font-weight:500}
.c-usps__usp .c-button{margin-top:1rem}
.c-usps__usp ul{list-style:disc}
.c-usps__usp ul li{text-align:left}
.c-usps .c-showcase__grid{grid-gap:2rem;gap:2rem}
.c-usps .c-bodyBlock__buttons{align-items:center;margin-top:6.5rem}
.c-usps .c-bodyBlock__buttons p{font-size:20px}
@media screen and (max-width:460px){
.c-usps .c-bodyBlock__buttons p{margin-bottom:1rem}
}
@media screen and (min-width:461px){
.c-usps .c-bodyBlock__buttons .c-button{margin-left:1rem}
}
.c-usps #uspHeading{margin-bottom:56px!important}
@media (min-width:768px){
.c-usps #uspHeading{margin-bottom:64px!important}
}
.c-bodyBlock.c-usps .c-button{background-color:#64f}
.c-bodyBlock.c-usps .c-button:focus-visible{box-shadow:0 0 0 .125rem #6644e1,inset 0 0 0 .125rem #e1e1e1}
@media screen and (min-width:1024px){
.c-usps__heading{font-size:64px}
}
@media (min-width:375px){
img.c-usps__usp--image.progs-home{width:unset!important;height:unset!important}
}

/* ── moved out of components/usps_partnerships.php's inline styles ─────────
   See AMS/docs/inline-css-migration.md.

   Scoped to .c-usps.header-black-bg, not .c-usps, because components/usps.php
   renders <section class="c-bodyBlock c-usps"> with the SAME .c-header__intro
   and .c-usps__usp--title classes, and it is live on /about and three
   conference pages. Only the partnerships block adds header-black-bg, so that
   pair is what separates them.

   The two greys are genuine overrides rather than defaults: globals/utilities
   has .header-black-bg h1,.header-black-bg p,.header-black-bg span{color:#fff}
   at (0,1,1), which outranks parts/header's .c-header__subheading (0,1,0)
   whatever the order. Without the inline style both would render white. These
   are (0,3,0) and clear it. */
.c-usps.header-black-bg .c-header__subheading{color:#8899aa}
.c-usps.header-black-bg .c-header__intro{color:#8899aa}

/* margin-top overrides .c-usps__usp--title{margin-top:2rem} above; the colour
   and alignment had no rule at all. h3 is not in the header-black-bg list, so
   the white here is its only source. */
.c-usps.header-black-bg .c-usps__usp--title{color:#fff;margin-top:0;text-align:center}

/* The image wrapper is a 50%-wide div with no class of its own — the inline
   auto margins were what centred it. */
.c-usps__uspMedia{margin:0 auto}
