#programs .section-lead { margin-bottom: 18px; }
#programs-title { font-size: 62px; line-height: 1.08; }
.ticket-title-dot { color: #005bff; }
.program-deck { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 34px 30px; margin: 14px 0 0; perspective: 1400px; }
.program-ticket {
  --ticket-angle: -1.5deg;
  --ticket-fill: #fff;
  --ticket-ink: #111;
  position: relative;
  display: block;
  min-width: 0;
  color: var(--ticket-ink);
  text-decoration: none;
  transform: rotate(var(--ticket-angle));
  transition: transform .65s cubic-bezier(.25,.6,.3,1);
  -webkit-tap-highlight-color: transparent;
  isolation: isolate;
}
.program-ticket:nth-child(2) { --ticket-angle: -1.3deg; }
.program-ticket:nth-child(3) { --ticket-angle: -.7deg; }
.program-ticket:nth-child(4) { --ticket-angle: -1.8deg; }
.program-ticket--mentor { --ticket-fill: #005bff; --ticket-ink: #fff; }
.ticket-outline { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; filter: drop-shadow(0 6px 2px #17191814) drop-shadow(0 20px 12px #17191824); }
.ticket-paper { fill: var(--ticket-fill); stroke: #242626; stroke-width: 2; vector-effect: non-scaling-stroke; }
.ticket-grain { opacity: .55; mix-blend-mode: multiply; pointer-events: none; }
.program-ticket--mentor .ticket-grain { opacity: .85; }
.program-ticket--mentor .ticket-paper { stroke: #004aff; }
.ticket-body { display: grid; grid-template-columns: minmax(0,1.06fr) minmax(0,.94fr); align-items: center; min-height: 270px; padding: 22px 27px 15px 38px; gap: 0; }
.program-ticket--mentor .ticket-body { grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); }
.ticket-info { position: relative; z-index: 2; min-width: 0; }
.ticket-info h3 { margin: 0; font-size: 40px; line-height: 1.01; font-weight: 810; }
.ticket-info h3 small { font-size: 23px; font-weight: inherit; white-space: nowrap; }
.ticket-teaser { max-width: 310px; margin: 21px 0 0; font-size: 17px; line-height: 1.4; color: #242625; }
.program-ticket--mentor .ticket-teaser { color: #fff; }
.ticket-object { position: relative; min-width: 0; height: 238px; pointer-events: none; }
.ticket-parallax { position: absolute; inset: -6%; display: block; transform: translate(var(--art-x,0px),var(--art-y,0px)); transition: transform .65s cubic-bezier(.25,.6,.3,1); }
.ticket-object:not(.is-in-view) .ticket-parallax { transform: none; transition: none; }
.ticket-motion,.ticket-idle { position: absolute; inset: 0; display: block; }
.ticket-object.is-in-view .ticket-parallax,.ticket-object.is-in-view .ticket-motion,.ticket-object.is-in-view .ticket-idle { will-change: transform; }
.ticket-object img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; object-fit: contain; clip-path: inset(3%); filter: drop-shadow(3px 12px 8px #10162625); }
.ticket-sheen { position: absolute; inset: 0; display: block; opacity: 0; clip-path: inset(3%); -webkit-mask-image: var(--art-mask); mask-image: var(--art-mask); -webkit-mask-position: center; mask-position: center; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; pointer-events: none; }
.ticket-sheen-light { position: absolute; top: 0; bottom: 0; left: -65%; width: 60%; background: linear-gradient(115deg,transparent 12%,#fff 45%,#fff 52%,transparent 88%); }
.ticket-object.is-reacting .ticket-sheen-light { will-change: transform; }
.program-ticket--mentor .ticket-object img { clip-path: inset(5% 3% 3%); }
.program-ticket--mentor .ticket-sheen { clip-path: inset(5% 3% 3%); }
.ticket-action { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; margin: 0 18px; padding: 14px 18px 16px 20px; border-top: 1.5px dashed #595e5b; color: #005bff; font-size: 18px; line-height: 1.3; font-weight: 750; }
.program-ticket::after { position: absolute; top: 14px; right: 66px; bottom: 5px; border-right: 1.5px dashed #69716b; content: ''; z-index: -1; }
.ticket-action svg { flex: 0 0 29px; width: 29px; height: 29px; transition: transform .55s ease-in-out; }
.program-ticket--mentor .ticket-action { color: #fff; border-color: #c5daff; }
.program-ticket--mentor::after { border-color: #c5daff; }
.ticket-corner { position: absolute; z-index: 3; top: 1px; left: 1px; width: 42px; height: 42px; background: linear-gradient(135deg,#b8bdb9 0%,#e7e9e6 45%,#969b97 49%,#f8f7f2 52%,#d5d7d1 100%); clip-path: polygon(0 0,100% 0,0 100%); transform-origin: top left; opacity: 0; scale: .15; transition: opacity .35s,scale .45s; pointer-events: none; }
.program-ticket--mentor .ticket-corner { background: linear-gradient(135deg,#a4c2ff,#005bff 49%,#003cb5 51%,#2874ff); }
.program-ticket:focus-visible { outline: 2px solid #005bff; outline-offset: 8px; }
@media (hover:hover) and (pointer:fine) {
  .program-ticket--buy .ticket-idle { animation: target-idle 12s ease-in-out infinite; }
  .program-ticket--content .ticket-idle { animation: sheet-idle 11s ease-in-out infinite; }
  .program-ticket--sales .ticket-idle { animation: percent-idle 13s ease-in-out infinite; }
  .program-ticket--mentor .ticket-idle { animation: links-idle 14s ease-in-out infinite; }
  .ticket-idle { animation-play-state: paused !important; }
  .ticket-object.is-in-view .ticket-idle { animation-play-state: running !important; }
  .tickets-paused .ticket-object.is-in-view .ticket-idle { animation-play-state: paused !important; }
  .program-ticket:hover,.program-ticket:focus-visible { transform: translateY(-3px) rotate(calc(var(--ticket-angle) - .12deg)); }
  .program-ticket:hover .ticket-corner,.program-ticket:focus-visible .ticket-corner { opacity: 1; scale: 1; }
  .program-ticket:hover .ticket-action svg,.program-ticket:focus-visible .ticket-action svg { transform: translate(2px,-2px); }
}
.program-ticket:active { transform: rotate(var(--ticket-angle)) translateY(-1px) scale(.988); transition-duration: .12s; }
.program-ticket.is-entering { animation: ticket-land .95s cubic-bezier(.22,.61,.36,1) both; animation-delay: var(--ticket-delay,0ms); }
@keyframes ticket-land { from { opacity: 0; translate: 0 7px; } to { opacity: 1; translate: 0 0; } }
@keyframes target-idle { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(.25deg); } }
@keyframes sheet-idle { 0%,100% { transform: translate(0,0) rotate(0); } 50% { transform: translate(.5px,-1.5px) rotate(-.35deg); } }
@keyframes percent-idle { 0%,100% { transform: rotate(0); } 50% { transform: rotate(.6deg); } }
@keyframes links-idle { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(-.5px,1px) scale(1.004); } }
@media (max-width:1399px) {
  .ticket-info h3 { font-size: 34px; }
}
@media (max-width:1250px) {
  #programs-title { font-size: 52px; }
  .ticket-body { min-height: 280px; padding: 23px 20px 15px 30px; grid-template-columns: minmax(0,1.13fr) minmax(0,.87fr); }
  .ticket-info h3 { font-size: 30px; }
  .ticket-info h3 small { font-size: 19px; }
  .ticket-teaser { font-size: 15px; }
  .ticket-object { height: 230px; }
  .ticket-action { font-size: 15px; padding-inline: 12px; }
}
@media (max-width:900px) {
  #programs-title { font-size: 48px; }
  .program-deck { grid-template-columns: 1fr; gap: 32px; }
  .ticket-body { min-height: 260px; padding-inline: 34px 27px; grid-template-columns: minmax(0,1.12fr) minmax(0,.88fr); }
  .ticket-info h3 { font-size: 36px; }
  .ticket-info h3 small { font-size: 22px; }
  .ticket-teaser { font-size: 17px; }
  .ticket-object { height: 230px; }
  .ticket-action { font-size: 17px; }
}
@media (max-width:480px) {
  #programs-title { font-size: 36px; }
  .program-deck { gap: 27px; margin-top: 18px; }
  .program-ticket:nth-child(n) { --ticket-angle: -.5deg; }
  .ticket-body { grid-template-columns: minmax(0,1fr); min-height: 0; padding: 27px 27px 0; }
  .program-ticket--mentor .ticket-body { grid-template-columns: minmax(0,1fr); }
  .ticket-info h3 { font-size: 30px; }
  .ticket-info h3 br { display: none; }
  .ticket-info h3 small { font-size: 21px; }
  .ticket-teaser { max-width: 100%; margin-top: 13px; font-size: 15px; }
  .ticket-object { height: 190px; width: 100%; }
  .ticket-parallax { inset: 0; }
  .ticket-action { margin-inline: 16px; padding-inline: 11px; font-size: 14px; min-height: 62px; gap: 10px; }
  .ticket-action svg { width: 24px; height: 24px; flex-basis: 24px; }
  .program-ticket::after { right: 51px; top: auto; height: 62px; }
}
@media (max-width:360px) {
  #programs-title { font-size: 30px; }
  .ticket-info h3 { font-size: 27px; }
  .ticket-action { font-size: 12px; }
}
@media (prefers-reduced-motion:reduce) {
  .program-ticket,.program-ticket:hover { transform: rotate(var(--ticket-angle)); }
  .program-ticket.is-entering { animation: none; }
  .ticket-parallax,.ticket-motion,.ticket-idle { transform: none; animation: none !important; }
  .ticket-sheen { display: none; }
  .ticket-corner { display: none; }
}
.course-program-deck { grid-template-columns: repeat(3,minmax(0,1fr)); align-items: stretch; gap: 18px; margin-top: 14px; perspective: none; }
.course-program-deck .program-ticket { --ticket-angle: 0deg; display: flex; min-width: 0; min-height: 0; flex-direction: column; }
.course-program-deck .program-ticket:nth-child(n) { --ticket-angle: 0deg; }
.course-program-deck .ticket-outline { overflow: hidden; filter: drop-shadow(0 4px 2px #17191810) drop-shadow(0 12px 10px #17191818); }
.course-program-deck .ticket-body { box-sizing: border-box; width: 100%; min-width: 0; grid-template-columns: minmax(0,1.2fr) minmax(108px,.8fr); align-items: center; flex: 1 0 auto; min-height: 204px; padding: 19px 26px 12px 38px; gap: 14px; }
.course-program-deck .ticket-info { align-self: center; min-width: 0; max-width: 100%; }
.course-program-deck .ticket-info h3 { max-width: 100%; font-size: clamp(19px,1.7vw,24px); line-height: 1.12; overflow-wrap: anywhere; }
.course-program-deck .ticket-info h3 small { font-size: .72em; white-space: normal; }
.course-program-deck .ticket-teaser { max-width: 100%; margin-top: 10px; font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.course-program-deck .ticket-object { justify-self: end; width: min(100%,190px); max-width: 100%; min-width: 0; height: 136px; overflow: hidden; }
.course-program-deck .ticket-parallax { inset: 0; }
.course-program-deck .ticket-action { box-sizing: border-box; min-width: 0; min-height: 51px; margin-inline: 18px; padding: 9px 12px; font-size: 12px; line-height: 1.3; gap: 8px; }
.course-program-deck .ticket-action span { min-width: 0; flex: 1 1 auto; overflow-wrap: anywhere; }
.course-program-deck .ticket-action svg { flex-basis: 22px; width: 22px; height: 22px; }
.course-program-deck .program-ticket::after { display: none; }
@media (max-width:900px) {
  .course-program-deck { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
  .course-program-deck .ticket-body { grid-template-columns: minmax(0,1.2fr) minmax(108px,.8fr); min-height: 202px; padding-inline: 38px 26px; }
  .course-program-deck .ticket-info h3 { font-size: clamp(19px,2.5vw,23px); }
  .course-program-deck .ticket-object { width: min(100%,190px);height: 132px; }
}
@media (max-width:700px) {
  .course-program-deck { grid-template-columns: 1fr; }
  .course-program-deck .ticket-body { grid-template-columns: minmax(0,1.2fr) minmax(108px,.8fr); min-height: 190px; padding: 17px 26px 10px 38px; gap: 12px; }
  .course-program-deck .ticket-info h3 { font-size: clamp(21px,4vw,26px); }
  .course-program-deck .ticket-teaser { max-width: 34ch; margin-top: 10px; font-size: 13px; }
  .course-program-deck .ticket-object { width: min(100%,210px);height: 148px; }
  .course-program-deck .ticket-action { min-height: 50px; margin-inline: 12px; padding-inline: 10px; font-size: 13px; gap: 8px; }
}
@media (max-width:420px) {
  .course-program-deck .ticket-body { grid-template-columns: minmax(0,1fr) 88px; min-height: 172px; padding: 17px 20px 8px 32px; gap: 10px; }
  .course-program-deck .ticket-info h3 { font-size: 20px; }
  .course-program-deck .ticket-teaser { font-size: 12px; }
  .course-program-deck .ticket-object { width: 88px;height: 120px; }
}
