/* index.html: this page's rules, loaded after main.css */
/* this page only */
.te-card-arrow{transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.te-card-arrow{display:inline-block;transform-origin:50% 50%;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.te-card-link:hover .te-card-arrow{transform:rotate(45deg)}
.te-card-link:hover .te-card-title{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px;text-decoration-color:var(--te-dark)}
.te-card-link:hover{color:var(--te-dark) !important}
.te-marquee-track{animation:te-marquee 70s linear infinite}
.te-marquee:hover .te-marquee-track{animation-play-state:paused}
@media (prefers-reduced-motion: reduce){.te-marquee-track{animation:none}}
/* summit section: background colour blobs drift slowly around their own spots */
@keyframes te-wiggle-1{0%,100%{transform:translate(0,0)}20%{transform:translate(12%,8%)}40%{transform:translate(10%,-8%)}60%{transform:translate(-4%,-4%)}80%{transform:translate(-2%,10%)}}
@keyframes te-wiggle-2{0%,100%{transform:translate(0,0)}20%{transform:translate(8%,8%)}40%{transform:translate(6%,-10%)}60%{transform:translate(-8%,-4%)}80%{transform:translate(-6%,6%)}}
@keyframes te-wiggle-3{0%,100%{transform:translate(0,0)}20%{transform:translate(12%,8%)}40%{transform:translate(10%,-8%)}60%{transform:translate(-4%,-4%)}80%{transform:translate(-2%,10%)}}
.te-blob{will-change:transform}
.te-blob-1{animation:te-wiggle-1 16s ease-in-out infinite}
.te-blob-2{animation:te-wiggle-2 20s ease-in-out infinite}
.te-blob-3{animation:te-wiggle-3 18s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){.te-blob{animation:none !important}}
/* hero video: Vimeo background embed (no controls, muted, autoplay, loop) over its own thumbnail */
.te-zoom>iframe{transition:transform .45s cubic-bezier(.2,.7,.2,1),opacity .6s ease}
/* keep the Vimeo thumbnail showing until the player reports it is actually playing (hides Vimeo's error screen if embedding is blocked) */
.te-vid>iframe{opacity:0}
.te-vid>iframe.te-vid-on{opacity:1}
@media (hover: hover){.te-zoom:hover>iframe{transform:scale(1.03)}}
/* participate & build: draggable bubble clusters */
.te-pb{position:absolute;left:0;top:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;user-select:none;-webkit-user-select:none;cursor:grab;touch-action:none;will-change:transform;opacity:0;transition:opacity .4s ease,box-shadow .2s ease}
.te-play[data-ready="true"] .te-pb{opacity:1}
.te-pb-tag{height:44px;padding:0 20px;border-radius:var(--te-radius-tag);font-size:14px;font-weight:700;line-height:20px;letter-spacing:.08em;text-transform:uppercase}
.te-pb-hub{flex-direction:column;width:132px;height:132px;border-radius:50%;font-size:16px;font-weight:700;line-height:24px;text-align:center;padding:12px;white-space:normal}
.te-pb.is-drag{cursor:grabbing;z-index:5;box-shadow:0 10px 24px rgba(38,37,40,.18)}
@media (max-width: 640px){.te-pb-hub{width:104px;height:104px;font-size:14px;line-height:20px}.te-pb-tag{height:38px;padding:0 14px}}
/* blobs: tint 300, softened with blur */
.te-orb{filter:blur(48px)}
.te-blob{filter:blur(40px)}
/* touch screens: icon links get a 44px target */
@media (pointer: coarse){.te-social{width:44px !important;height:44px !important}}
/* mobile: two speakers per row */
@media (max-width: 600px){.te-g6{grid-template-columns:repeat(2,minmax(0,1fr)) !important;column-gap:16px !important}}
/* program cards: a stronger zoom on hover */
@media (hover: hover){.te-card-link:hover .te-zoom>img,.te-card-link .te-zoom:hover>img{transform:scale(1.08)}}
.te-nav a:not(.te-dd-menu a),.te-dd-trigger,.te-dd-lbl,.te-foot-links a,.te-person a,.te-text-link,.te-card-title{text-decoration:none !important}
@media (hover: hover){.te-zoom:not(a .te-zoom)>img,.te-zoom:not(a .te-zoom)>video,.te-zoom:not(a .te-zoom)>iframe{transform:none !important}}
/* column groups share one continuous divider across the row; on smaller screens, where the columns stack, each column gets its own */
.te-rule{border-top:1px solid var(--te-line);padding-top:var(--rp,24px)}
@media (max-width: 1023px){.te-rule:not(.te-rule-all){border-top:0;padding-top:0}.te-rule:not(.te-rule-all)>.te-rule-c{border-top:1px solid var(--te-line);padding-top:var(--rp,24px)}}
/* stacked columns (tablet and phone): the row divider still runs straight across the gap */
@media (max-width: 1023px){.te-rule:not(.te-rule-all){overflow-x:clip}.te-rule:not(.te-rule-all)>.te-rule-c{border-top:0 !important;position:relative}.te-rule:not(.te-rule-all)>.te-rule-c::before{content:"";position:absolute;top:0;left:0;right:calc(-1 * var(--cg, 32px));height:1px;background:var(--te-line)}}
.te-header-inner:is([data-scrolled="true"],[data-nav="true"]) :is(.te-nav a,.te-dd-trigger),.te-dd-menu a,.te-sk-text span{text-shadow:0 0 1px rgba(255,255,255,.9),0 0 8px rgba(255,255,255,.85),0 0 16px rgba(255,255,255,.55)}
:is(.te-header-inner[data-scrolled="true"],.te-header-inner[data-nav="true"],.te-sk) [data-tone="dark"]:not(.te-btn):not(img){text-shadow:0 0 1px rgba(0,0,0,.5),0 0 8px rgba(0,0,0,.55),0 0 16px rgba(0,0,0,.35) !important}
.te-header-inner .te-btn{text-shadow:none !important}
@media (pointer: coarse), (max-width: 767px){
.te-burger{width:48px !important;height:48px !important;margin:-4px -4px -4px 0 !important}
.te-logo,.te-header-inner .te-btn,.te-btn-outline.te-btn-arrow,.te-person a,.te-text-link{position:relative;overflow:visible !important}
.te-logo::after,.te-header-inner .te-btn::after,.te-btn-outline.te-btn-arrow::after,.te-person a::after,.te-text-link::after{content:"" !important;display:block !important;position:absolute !important;left:50% !important;top:50% !important;right:auto !important;bottom:auto !important;width:max(100%,48px) !important;height:max(100%,48px) !important;transform:translate(-50%,-50%) !important;background:none !important;border:0 !important;box-shadow:none !important;opacity:1 !important;z-index:1 !important;padding:0 !important;-webkit-mask:none !important;mask:none !important;pointer-events:auto !important}
.te-social{width:48px !important;height:48px !important}
nav[aria-label="Social"] ul{gap:8px !important}
.te-foot-links a{padding:14px 0 !important}
.te-header-inner .te-nav .te-dd-menu a,.te-header-inner .te-nav a{min-height:48px !important}
.te-pie-key{min-height:48px}
.te-skip{min-height:48px;padding:14px 16px}
}
@media (pointer: coarse), (max-width: 767px){
.te-btn,.te-btn-outline{position:relative;overflow:visible !important}
:is(.te-btn,.te-btn-outline)::after{content:"" !important;display:block !important;position:absolute !important;left:50% !important;top:50% !important;right:auto !important;bottom:auto !important;width:max(100%,48px) !important;height:max(100%,48px) !important;transform:translate(-50%,-50%) !important;background:none !important;border:0 !important;box-shadow:none !important;opacity:1 !important;z-index:1 !important;padding:0 !important;-webkit-mask:none !important;mask:none !important;pointer-events:auto !important}
}
@media (max-width: 1023px){.te-burger{order:2 !important;margin:-4px 0 !important}.te-header-inner .te-cta{order:3 !important}}
/* phones: Luma calendar 20px taller */
@media (max-width: 767px){.te-cal{height:560px !important}.te-cal iframe,.te-cal .te-embed{height:560px !important}}
