#dates.program-experience{--program-red:#c51d23;position:relative;isolation:isolate;overflow:clip;color:#fff;background:radial-gradient(circle at 18% 18%,rgba(197,29,35,.24),transparent 31rem),radial-gradient(circle at 84% 72%,rgba(255,255,255,.09),transparent 34rem),linear-gradient(145deg,#191d21 0%,#292f34 48%,#171a1e 100%)}
#dates.program-experience:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(18,21,24,.04),rgba(18,21,24,.68) 88%),repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 1px,transparent 1px 8rem)}
#dates .program-webgl{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
#dates .program-webgl canvas{position:absolute;top:0;left:0;width:100%;height:min(100vh,900px);opacity:.9;will-change:transform}
#dates.program-experience>.container{position:relative;z-index:2}
#dates.program-experience .generic-title h2,#dates.program-experience .generic-title p{color:#fff}
#dates.program-experience .generic-title p{max-width:900px;margin-left:auto;margin-right:auto;color:rgba(255,255,255,.74)}
.program-day-picker{position:sticky;top:1rem;z-index:20;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;max-width:980px;margin:2.1rem auto 4rem;padding:.65rem;border:1px solid rgba(255,255,255,.18);border-radius:1.15rem;background:rgba(22,26,30,.8);box-shadow:0 1.25rem 4rem rgba(0,0,0,.23);backdrop-filter:blur(16px)}
.program-day-picker a{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.9rem;min-height:4.8rem;padding:.75rem 1rem;border-radius:.8rem;color:rgba(255,255,255,.68);text-decoration:none;transition:.25s ease}
.program-day-picker a:after{content:"";position:absolute;right:1rem;bottom:.45rem;left:1rem;height:3px;border-radius:99px;background:var(--program-red);transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.program-day-picker a:hover,.program-day-picker a:focus-visible{color:#fff;background:rgba(255,255,255,.08)}
.program-day-picker a:focus-visible{outline:3px solid rgba(255,255,255,.78);outline-offset:2px}
.program-day-picker a[aria-current=true]{color:#fff;background:rgba(197,29,35,.22)}
.program-day-picker a[aria-current=true]:after{transform:scaleX(1)}
.program-day-picker span{display:inline-flex;align-items:center;justify-content:center;min-width:4.15rem;height:2.3rem;padding:0 .75rem;border-radius:99px;background:var(--program-red);color:#fff;font-size:.92rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}
.program-day-picker strong{font-size:.98rem;line-height:1.28}
#dates .program-scroll-story{display:block;max-width:980px;margin:0 auto;text-align:left}
#dates .program-scroll-story .compact-program-day{position:relative;width:100%;margin:0 0 clamp(5rem,12vh,8.5rem);padding:clamp(.7rem,2vw,1.4rem);border:1px solid rgba(255,255,255,.18);border-radius:1.5rem;background:rgba(255,255,255,.94);box-shadow:0 2rem 5rem rgba(0,0,0,.24);scroll-margin-top:8.5rem;transition:border-color .35s ease,box-shadow .35s ease}
#dates .program-scroll-story .compact-program-day.is-active{border-color:rgba(197,29,35,.75);box-shadow:0 2rem 5rem rgba(0,0,0,.28),0 0 0 1px rgba(197,29,35,.2)}
#dates .program-scroll-story .compact-day-heading{position:sticky;top:7.4rem;z-index:10;margin:0 0 1.25rem;border:1px solid rgba(255,255,255,.12);border-radius:1rem;background:linear-gradient(120deg,rgba(197,29,35,.95),rgba(197,29,35,.82) 24%,rgba(39,44,49,.96) 24.2%);box-shadow:0 1rem 2.5rem rgba(0,0,0,.2);backdrop-filter:blur(12px)}
#dates .program-scroll-story .compact-day-heading span{background:#fff;color:var(--program-red)}
#dates .program-scroll-story .compact-day-heading small{color:#fff}
#dates .program-scroll-story .compact-program-list{margin:0;padding:0;background:transparent}
#dates.program-enhanced .compact-talk,#dates.program-enhanced .compact-program-break{opacity:.3;transform:translate3d(0,2.5rem,0) scale(.985);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.75,.25,1),box-shadow .35s ease}
#dates.program-enhanced .compact-talk.is-visible,#dates.program-enhanced .compact-program-break.is-visible{opacity:1;transform:none}
#dates .program-scroll-story .compact-talk{min-height:9.3rem;margin-bottom:1rem;border:1px solid #e0e4e7;border-radius:.8rem;background:rgba(255,255,255,.97);box-shadow:0 .75rem 2rem rgba(17,23,28,.07)}
#dates .program-scroll-story .compact-talk:hover{box-shadow:0 1.1rem 2.4rem rgba(17,23,28,.12)}
#dates .program-scroll-story .compact-program-break{margin:.35rem 0 1rem;border-radius:.55rem}
#dates .program-scroll-story .compact-program-day:last-child{margin-bottom:1rem}
#dates.webgl-unavailable .program-webgl{display:none}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:767px){#dates.program-experience{overflow:hidden}#dates .program-webgl canvas{opacity:.64}.program-day-picker{top:.5rem;gap:.35rem;margin:1.5rem auto 2.5rem;padding:.4rem;border-radius:.9rem}.program-day-picker a{grid-template-columns:1fr;gap:.35rem;min-height:4.35rem;padding:.55rem .55rem .75rem;text-align:center}.program-day-picker span{justify-self:center;min-width:3.5rem;height:1.9rem;font-size:.76rem}.program-day-picker strong{font-size:.78rem}#dates .program-scroll-story .compact-program-day{margin-bottom:4rem;padding:.55rem;border-radius:1rem;scroll-margin-top:7rem}#dates .program-scroll-story .compact-day-heading{position:relative;top:auto;margin-bottom:.65rem;border-radius:.75rem}#dates .program-scroll-story .compact-talk{min-height:0;margin-bottom:.65rem}}
@media(prefers-reduced-motion:reduce){#dates .program-webgl{display:none}#dates.program-enhanced .compact-talk,#dates.program-enhanced .compact-program-break{opacity:1;transform:none;transition:none}.program-day-picker a,.program-day-picker a:after{transition:none}}
/* Program experience conflict guards */
#dates.program-experience {
  background-color: #191d21 !important;
  background-image:
    radial-gradient(circle at 18% 18%, rgba(197, 29, 35, .24), transparent 31rem),
    radial-gradient(circle at 84% 72%, rgba(255, 255, 255, .09), transparent 34rem),
    linear-gradient(145deg, #191d21 0%, #292f34 48%, #171a1e 100%) !important;
}
#dates .program-scroll-story .compact-program-day {
  overflow: visible;
}
#dates.program-enhanced .compact-talk,
#dates.program-enhanced .compact-program-break {
  opacity: .68;
  transform: translate3d(0, 1.5rem, 0) scale(.992);
}
#dates.program-enhanced .compact-talk.is-visible,
#dates.program-enhanced .compact-program-break.is-visible {
  opacity: 1;
  transform: none;
}
/* Keep the mobile day picker sticky. */
@media (max-width: 767px) {
  #dates.program-experience {
    overflow: clip;
  }
}
/* Program title contrast. */
#dates.program-experience .generic-title h2 {
  color: #fff !important;
}
/* Cross-browser program background: WebGL enhancement with a permanent CSS fallback. */
#dates .program-webgl {
  display: block !important;
  min-height: 100%;
  background:
    radial-gradient(circle at 12% 16%, rgba(197, 29, 35, .36), transparent 28rem),
    radial-gradient(circle at 88% 70%, rgba(197, 29, 35, .18), transparent 34rem),
    linear-gradient(145deg, #171b1f 0%, #272d32 48%, #15191c 100%);
}

#dates .program-webgl::before,
#dates .program-webgl::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

#dates .program-webgl::before {
  inset: -6%;
  opacity: .52;
  background-image:
    linear-gradient(116deg, transparent 0 46%, rgba(221, 41, 47, .58) 46.15% 46.48%, transparent 46.65%),
    linear-gradient(28deg, transparent 0 49.75%, rgba(255, 255, 255, .08) 49.9% 50.1%, transparent 50.25%),
    linear-gradient(152deg, transparent 0 49.75%, rgba(255, 255, 255, .055) 49.9% 50.1%, transparent 50.25%),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, .035) 0 1px, transparent 1px 7.5rem),
    repeating-linear-gradient(0deg, rgba(255, 255, 255, .025) 0 1px, transparent 1px 6rem);
  background-size: auto, 22rem 13rem, 22rem 13rem, auto, auto;
  transform: skewY(-2deg);
}

#dates .program-webgl::after {
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(circle at 50% 10%, transparent 0 22rem, rgba(255, 255, 255, .045) 22.15rem 22.3rem, transparent 22.45rem),
    linear-gradient(180deg, rgba(15, 18, 21, .02), rgba(15, 18, 21, .44));
}

#dates .program-webgl canvas {
  z-index: 2;
  width: 100% !important;
  height: 100% !important;
  min-height: 100%;
  opacity: 0;
  transition: opacity .45s ease;
}

#dates.webgl-ready .program-webgl canvas {
  opacity: .78;
}

#dates.webgl-unavailable .program-webgl canvas,
#dates.webgl-context-lost .program-webgl canvas {
  display: none;
}

@keyframes program-fallback-drift {
  0%, 100% { transform: translate3d(-1.2%, -.5%, 0) skewY(-2deg); }
  50% { transform: translate3d(1.2%, .5%, 0) skewY(-2deg); }
}

#dates .program-webgl::before {
  animation: program-fallback-drift 18s ease-in-out infinite;
  will-change: transform;
}

@media (max-width: 767px) {
  #dates .program-webgl::before {
    inset: -10%;
    opacity: .42;
    background-size: auto, 14rem 10rem, 14rem 10rem, auto, auto;
  }

  #dates.webgl-ready .program-webgl canvas {
    opacity: .58;
  }
}

@media (prefers-reduced-motion: reduce) {
  #dates .program-webgl {
    display: block !important;
  }

  #dates .program-webgl canvas {
    display: none !important;
  }

  #dates .program-webgl::before {
    animation: none !important;
  }
}