.elementor-167 .elementor-element.elementor-element-407069d{--display:flex;}.elementor-167 .elementor-element.elementor-element-0e424fe{--display:flex;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-167 .elementor-element.elementor-element-da517c9 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-weight:400;color:#46136D;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-167 .elementor-element.elementor-element-1f558a3 .elementor-button{background-color:#46136D;}.elementor-167 .elementor-element.elementor-element-61167ca .elementor-heading-title{font-family:"Roboto", Sans-serif;font-weight:300;color:#46136D;}@media(max-width:767px){.elementor-167 .elementor-element.elementor-element-407069d:not(.elementor-motion-effects-element-type-background), .elementor-167 .elementor-element.elementor-element-407069d > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://next-degree.com/wp-content/uploads/2026/07/header-mo-v3.png");background-position:center center;}.elementor-167 .elementor-element.elementor-element-407069d{--min-height:60vh;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-167 .elementor-element.elementor-element-407069d > .elementor-shape-bottom svg, .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner > .elementor-shape-bottom svg{height:75px;}.elementor-167 .elementor-element.elementor-element-0e424fe{--min-height:30vh;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:20px;--padding-bottom:0px;--padding-left:10px;--padding-right:10px;}.elementor-167 .elementor-element.elementor-element-da517c9{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:10px 0px 0px 0px;text-align:center;}.elementor-167 .elementor-element.elementor-element-da517c9 .elementor-heading-title{font-size:20px;}.elementor-167 .elementor-element.elementor-element-4ebd1e5{margin:-8px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:5px 0px 0px 0px;text-align:center;}.elementor-167 .elementor-element.elementor-element-1f558a3{margin:-20px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:5px 10px 0px 10px;}.elementor-167 .elementor-element.elementor-element-1f558a3 .elementor-button{border-radius:20px 20px 20px 20px;}.elementor-167 .elementor-element.elementor-element-61167ca{margin:-10px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:2px 0px 0px 0px;text-align:center;}.elementor-167 .elementor-element.elementor-element-61167ca .elementor-heading-title{font-size:10px;}}/* Start custom CSS for container, class: .elementor-element-407069d */.elementor-167 .elementor-element.elementor-element-407069d {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transform-origin: center center;
  pointer-events: none;
  box-shadow: 0 24px 64px rgba(69, 26, 112, .28), 0 0 0 1px rgba(255,255,255,.24) inset;
  animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both;
}

.elementor-167 .elementor-element.elementor-element-407069d::before {
  content: "";
  position: absolute;
  z-index: 3;
  inset: -48% -78%;
  pointer-events: none;
  background:
    radial-gradient(circle at 20% 76%, rgba(126, 52, 204, .64), transparent 22%),
    radial-gradient(circle at 74% 20%, rgba(255, 207, 91, .30), transparent 17%),
    linear-gradient(112deg,
      transparent 31%,
      rgba(95, 35, 160, 0) 40%,
      rgba(119, 53, 203, .26) 44%,
      rgba(174, 105, 255, .78) 47%,
      rgba(255, 204, 92, .96) 49%,
      rgba(255,255,255,.96) 50%,
      rgba(150, 70, 220, .78) 52%,
      rgba(87, 28, 149, .20) 56%,
      transparent 63%);
  background-size: 140% 140%, 140% 140%, 190% 190%;
  mix-blend-mode: screen;
  filter: blur(5px) saturate(140%);
  opacity: .56;
  transform: translate3d(-48%, 36%, 0) rotate(-8deg);
  animation:
    pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
    pluEnergyFlow 4.5s linear 2.3s infinite;
}

.elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "ดูหลักสูตรทั้งหมด  ↗";
  position: absolute;
  z-index: 6;
  top: 18px;
  right: 16px;
  padding: 9px 14px 9px;
  pointer-events: auto;
  cursor: pointer;
  color: #fff;
  background: rgba(55, 18, 88, .80);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(42, 12, 70, .24), inset 0 1px 0 rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(12px) saturate(135%);
  backdrop-filter: blur(12px) saturate(135%);
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
  animation:
    pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
    pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate;
}

.elementor-167 .elementor-element.elementor-element-407069d:focus-visible::after {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

@keyframes pluSceneIgnite {
  0% { filter: brightness(.52) saturate(.45) contrast(1.08) blur(3px); }
  55% { filter: brightness(1.18) saturate(1.28) contrast(1.04) blur(0); }
  100% { filter: brightness(1) saturate(1.08) contrast(1.02) blur(0); }
}

@keyframes pluEnergyRush {
  0% { opacity: 0; transform: translate3d(-48%, 36%, 0) rotate(-8deg) scale(.72); }
  42% { opacity: 1; }
  72% { opacity: .82; }
  100% { opacity: .56; transform: translate3d(8%, -5%, 0) rotate(-8deg) scale(1); }
}

@keyframes pluEnergyFlow {
  0% { background-position: 0% 60%, 20% 30%, 0% 60%; }
  100% { background-position: 90% 40%, 70% 60%, 100% 40%; }
}

@keyframes pluFloatingCtaIn {
  0% { opacity: 0; transform: translate3d(18px,-12px,0) scale(.84); }
  70% { opacity: 1; transform: translate3d(-2px,2px,0) scale(1.035); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluFloatingCtaFloat {
  from { transform: translate3d(0,0,0); box-shadow: 0 12px 30px rgba(42,12,70,.24), inset 0 1px 0 rgba(255,255,255,.22); }
  to { transform: translate3d(0,-4px,0); box-shadow: 0 18px 36px rgba(42,12,70,.34), 0 0 0 5px rgba(255,205,95,.08), inset 0 1px 0 rgba(255,255,255,.28); }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both;
    animation-timeline: auto, scroll(root block);
    animation-range: normal, 0 46vh;
  }
  @keyframes pluSceneScroll {
    from { background-position: center 58%; }
    to { background-position: center 39%; }
  }
}

@media (prefers-reduced-motion: reduce) {
  html body .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both !important;
    animation-timeline: auto, scroll(root block) !important;
    animation-range: normal, 0 46vh !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::before {
    animation: pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
               pluEnergyFlow 4.5s linear 2.3s infinite !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

/* High-specificity CTA layer to outrank stale generated CSS */
html body .elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "ดูหลักสูตรทั้งหมด  ↗";
  position: absolute;
  z-index: 6;
  top: 18px;
  right: 16px;
  bottom: auto;
  left: auto;
  width: auto;
  height: auto;
  padding: 9px 14px;
  pointer-events: none;
  color: #fff;
  background: rgba(55, 18, 88, .80);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(42, 12, 70, .24), inset 0 1px 0 rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(12px) saturate(135%);
  backdrop-filter: blur(12px) saturate(135%);
  mix-blend-mode: normal;
  filter: none;
  opacity: 1;
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
  animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
             pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate;
}

@media (prefers-reduced-motion: reduce) {
  html body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

/* Advisor scroll story layer */
.elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner {
  position: relative;
  isolation: isolate;
}

.elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
  content: "";
  position: absolute;
  z-index: 4;
  left: -7%;
  bottom: -3%;
  width: 48%;
  height: 72%;
  pointer-events: none;
  background-image: url("https://next-degree.com/wp-content/uploads/2026/06/advisor-jib-solo.png");
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: contain;
  opacity: 0;
  transform: translate3d(-22%, 24%, 0) scale(.90);
  transform-origin: left bottom;
  filter: drop-shadow(0 18px 24px rgba(40, 14, 66, .28));
  will-change: transform, opacity;
  animation: pluAdvisorLoad 1.1s cubic-bezier(.16, 1, .3, 1) 2.1s both;
}

.elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
  content: "ยินดีให้คำปรึกษานะคะ\Aวางแผนการเรียนไปด้วยกัน";
  position: absolute;
  z-index: 5;
  left: 33%;
  bottom: 31%;
  max-width: 53%;
  padding: 11px 13px 10px;
  pointer-events: none;
  color: #3e1a57;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 18px 18px 18px 5px;
  box-shadow: 0 16px 34px rgba(48,17,76,.20), inset 0 1px 0 rgba(255,255,255,.96);
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -.005em;
  white-space: pre-line;
  opacity: 0;
  transform: translate3d(-14px, 16px, 0) scale(.84);
  transform-origin: left bottom;
  will-change: transform, opacity;
  animation: pluBubbleLoad .9s cubic-bezier(.16, 1, .3, 1) 2.75s both;
}

@keyframes pluAdvisorLoad {
  0% { opacity: 0; transform: translate3d(-22%, 24%, 0) scale(.90); }
  70% { opacity: 1; transform: translate3d(2%, -1%, 0) scale(1.018); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluBubbleLoad {
  0% { opacity: 0; transform: translate3d(-14px,16px,0) scale(.84); }
  72% { opacity: 1; transform: translate3d(2px,-2px,0) scale(1.025); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluAdvisorScroll {
  0% { opacity: 0; transform: translate3d(-22%, 24%, 0) scale(.90); }
  72% { opacity: 1; transform: translate3d(2%, -1%, 0) scale(1.018); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluBubbleScroll {
  0% { opacity: 0; transform: translate3d(-14px,16px,0) scale(.84); }
  72% { opacity: 1; transform: translate3d(2px,-2px,0) scale(1.025); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
    animation: pluAdvisorScroll cubic-bezier(.16, 1, .3, 1) both;
    animation-timeline: scroll(root block);
    animation-range: 16px 96px;
  }

  .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
    animation: pluBubbleScroll cubic-bezier(.16, 1, .3, 1) both;
    animation-timeline: scroll(root block);
    animation-range: 82px 168px;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
    animation: pluAdvisorScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: scroll(root block) !important;
    animation-range: 16px 96px !important;
  }

  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
    animation: pluBubbleScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: scroll(root block) !important;
    animation-range: 82px 168px !important;
  }
}

/* Prefer element-linked view timelines for reliable Elementor scrolling. */
@supports (animation-timeline: view()) {
  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
    animation: pluAdvisorScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: view(block) !important;
    animation-range: exit 0% exit 38% !important;
  }

  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
    animation: pluBubbleScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: view(block) !important;
    animation-range: exit 26% exit 64% !important;
  }
}

/* IntersectionObserver-driven story states */
:root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
  animation: none !important;
  opacity: 0 !important;
  transform: translate3d(-22%, 24%, 0) scale(.90) !important;
  transition: opacity 900ms cubic-bezier(.16, 1, .3, 1),
              transform 1100ms cubic-bezier(.16, 1, .3, 1) !important;
}

:root body .elementor-167 .elementor-element.elementor-element-407069d.plu-advisor-visible > .e-con-inner::before {
  opacity: 1 !important;
  transform: translate3d(0,0,0) scale(1) !important;
}

:root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
  animation: none !important;
  opacity: 0 !important;
  transform: translate3d(-14px,16px,0) scale(.84) !important;
  transition: opacity 720ms cubic-bezier(.16, 1, .3, 1),
              transform 920ms cubic-bezier(.16, 1, .3, 1) !important;
}

:root body .elementor-167 .elementor-element.elementor-element-407069d.plu-bubble-visible > .e-con-inner::after {
  opacity: 1 !important;
  transform: translate3d(0,0,0) scale(1) !important;
}

/* Mobile pinned story runway */
@media (max-width: 767px) {
  .plu-hero-story {
    position: relative;
    height: calc(100svh + 260px);
    background: #fff;
  }

  .plu-hero-stage {
    position: sticky;
    top: 0;
    height: 100svh;
    overflow: hidden;
    background: #fff;
    isolation: isolate;
  }

  .plu-hero-stage > .elementor-element-407069d,
  .plu-hero-stage > .elementor-element-0e424fe {
    width: 100%;
  }

  .plu-story-sentinel {
    position: absolute;
    left: 0;
    width: 1px;
    pointer-events: none;
    visibility: hidden;
  }

  .plu-advisor-sentinel {
    top: calc(100svh + 35px);
    bottom: 0;
  }

  .plu-bubble-sentinel {
    top: calc(100svh + 135px);
    bottom: 0;
  }
}

@media (max-width: 767px) {
  .plu-story-sentinel {
    visibility: visible !important;
    opacity: 0;
  }
}

@media (max-width: 767px) {
  :root body .elementor-167 .elementor-element.elementor-element-407069d.plu-advisor-visible:not(.plu-pin-advisor-visible) > .e-con-inner::before {
    opacity: 0 !important;
    transform: translate3d(-22%, 24%, 0) scale(.90) !important;
  }

  :root body .elementor-167 .elementor-element.elementor-element-407069d.plu-bubble-visible:not(.plu-pin-bubble-visible) > .e-con-inner::after {
    opacity: 0 !important;
    transform: translate3d(-14px,16px,0) scale(.84) !important;
  }

  :root body .elementor-167 .elementor-element.elementor-element-407069d.plu-pin-advisor-visible > .e-con-inner::before {
    opacity: 1 !important;
    transform: translate3d(0,0,0) scale(1) !important;
  }

  :root body .elementor-167 .elementor-element.elementor-element-407069d.plu-pin-bubble-visible > .e-con-inner::after {
    opacity: 1 !important;
    transform: translate3d(0,0,0) scale(1) !important;
  }
}.elementor-167 .elementor-element.elementor-element-407069d {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transform-origin: center center;
  pointer-events: none;
  box-shadow: 0 24px 64px rgba(69, 26, 112, .28), 0 0 0 1px rgba(255,255,255,.24) inset;
  animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both;
}

.elementor-167 .elementor-element.elementor-element-407069d::before {
  content: "";
  position: absolute;
  z-index: 3;
  inset: -48% -78%;
  pointer-events: none;
  background:
    radial-gradient(circle at 20% 76%, rgba(126, 52, 204, .64), transparent 22%),
    radial-gradient(circle at 74% 20%, rgba(255, 207, 91, .30), transparent 17%),
    linear-gradient(112deg,
      transparent 31%,
      rgba(95, 35, 160, 0) 40%,
      rgba(119, 53, 203, .26) 44%,
      rgba(174, 105, 255, .78) 47%,
      rgba(255, 204, 92, .96) 49%,
      rgba(255,255,255,.96) 50%,
      rgba(150, 70, 220, .78) 52%,
      rgba(87, 28, 149, .20) 56%,
      transparent 63%);
  background-size: 140% 140%, 140% 140%, 190% 190%;
  mix-blend-mode: screen;
  filter: blur(5px) saturate(140%);
  opacity: .56;
  transform: translate3d(-48%, 36%, 0) rotate(-8deg);
  animation:
    pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
    pluEnergyFlow 4.5s linear 2.3s infinite;
}

.elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "ดูหลักสูตรทั้งหมด  ↗";
  position: absolute;
  z-index: 6;
  top: 18px;
  right: 16px;
  padding: 9px 14px 9px;
  pointer-events: auto;
  cursor: pointer;
  color: #fff;
  background: rgba(55, 18, 88, .80);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(42, 12, 70, .24), inset 0 1px 0 rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(12px) saturate(135%);
  backdrop-filter: blur(12px) saturate(135%);
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
  animation:
    pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
    pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate;
}

.elementor-167 .elementor-element.elementor-element-407069d:focus-visible::after {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

@keyframes pluSceneIgnite {
  0% { filter: brightness(.52) saturate(.45) contrast(1.08) blur(3px); }
  55% { filter: brightness(1.18) saturate(1.28) contrast(1.04) blur(0); }
  100% { filter: brightness(1) saturate(1.08) contrast(1.02) blur(0); }
}

@keyframes pluEnergyRush {
  0% { opacity: 0; transform: translate3d(-48%, 36%, 0) rotate(-8deg) scale(.72); }
  42% { opacity: 1; }
  72% { opacity: .82; }
  100% { opacity: .56; transform: translate3d(8%, -5%, 0) rotate(-8deg) scale(1); }
}

@keyframes pluEnergyFlow {
  0% { background-position: 0% 60%, 20% 30%, 0% 60%; }
  100% { background-position: 90% 40%, 70% 60%, 100% 40%; }
}

@keyframes pluFloatingCtaIn {
  0% { opacity: 0; transform: translate3d(18px,-12px,0) scale(.84); }
  70% { opacity: 1; transform: translate3d(-2px,2px,0) scale(1.035); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluFloatingCtaFloat {
  from { transform: translate3d(0,0,0); box-shadow: 0 12px 30px rgba(42,12,70,.24), inset 0 1px 0 rgba(255,255,255,.22); }
  to { transform: translate3d(0,-4px,0); box-shadow: 0 18px 36px rgba(42,12,70,.34), 0 0 0 5px rgba(255,205,95,.08), inset 0 1px 0 rgba(255,255,255,.28); }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both;
    animation-timeline: auto, scroll(root block);
    animation-range: normal, 0 46vh;
  }
  @keyframes pluSceneScroll {
    from { background-position: center 58%; }
    to { background-position: center 39%; }
  }
}

@media (prefers-reduced-motion: reduce) {
  html body .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both !important;
    animation-timeline: auto, scroll(root block) !important;
    animation-range: normal, 0 46vh !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::before {
    animation: pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
               pluEnergyFlow 4.5s linear 2.3s infinite !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

/* High-specificity CTA layer to outrank stale generated CSS */
html body .elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "ดูหลักสูตรทั้งหมด  ↗";
  position: absolute;
  z-index: 6;
  top: 18px;
  right: 16px;
  bottom: auto;
  left: auto;
  width: auto;
  height: auto;
  padding: 9px 14px;
  pointer-events: none;
  color: #fff;
  background: rgba(55, 18, 88, .80);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(42, 12, 70, .24), inset 0 1px 0 rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(12px) saturate(135%);
  backdrop-filter: blur(12px) saturate(135%);
  mix-blend-mode: normal;
  filter: none;
  opacity: 1;
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
  animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
             pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate;
}

@media (prefers-reduced-motion: reduce) {
  html body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

/* Advisor scroll story layer */
.elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner {
  position: relative;
  isolation: isolate;
}

.elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
  content: "";
  position: absolute;
  z-index: 4;
  left: -7%;
  bottom: -3%;
  width: 48%;
  height: 72%;
  pointer-events: none;
  background-image: url("https://next-degree.com/wp-content/uploads/2026/06/advisor-jib-solo.png");
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: contain;
  opacity: 0;
  transform: translate3d(-22%, 24%, 0) scale(.90);
  transform-origin: left bottom;
  filter: drop-shadow(0 18px 24px rgba(40, 14, 66, .28));
  will-change: transform, opacity;
  animation: pluAdvisorLoad 1.1s cubic-bezier(.16, 1, .3, 1) 2.1s both;
}

.elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
  content: "ยินดีให้คำปรึกษานะคะ\Aวางแผนการเรียนไปด้วยกัน";
  position: absolute;
  z-index: 5;
  left: 33%;
  bottom: 31%;
  max-width: 53%;
  padding: 11px 13px 10px;
  pointer-events: none;
  color: #3e1a57;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 18px 18px 18px 5px;
  box-shadow: 0 16px 34px rgba(48,17,76,.20), inset 0 1px 0 rgba(255,255,255,.96);
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -.005em;
  white-space: pre-line;
  opacity: 0;
  transform: translate3d(-14px, 16px, 0) scale(.84);
  transform-origin: left bottom;
  will-change: transform, opacity;
  animation: pluBubbleLoad .9s cubic-bezier(.16, 1, .3, 1) 2.75s both;
}

@keyframes pluAdvisorLoad {
  0% { opacity: 0; transform: translate3d(-22%, 24%, 0) scale(.90); }
  70% { opacity: 1; transform: translate3d(2%, -1%, 0) scale(1.018); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluBubbleLoad {
  0% { opacity: 0; transform: translate3d(-14px,16px,0) scale(.84); }
  72% { opacity: 1; transform: translate3d(2px,-2px,0) scale(1.025); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluAdvisorScroll {
  0% { opacity: 0; transform: translate3d(-22%, 24%, 0) scale(.90); }
  72% { opacity: 1; transform: translate3d(2%, -1%, 0) scale(1.018); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluBubbleScroll {
  0% { opacity: 0; transform: translate3d(-14px,16px,0) scale(.84); }
  72% { opacity: 1; transform: translate3d(2px,-2px,0) scale(1.025); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
    animation: pluAdvisorScroll cubic-bezier(.16, 1, .3, 1) both;
    animation-timeline: scroll(root block);
    animation-range: 16px 96px;
  }

  .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
    animation: pluBubbleScroll cubic-bezier(.16, 1, .3, 1) both;
    animation-timeline: scroll(root block);
    animation-range: 82px 168px;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
    animation: pluAdvisorScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: scroll(root block) !important;
    animation-range: 16px 96px !important;
  }

  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
    animation: pluBubbleScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: scroll(root block) !important;
    animation-range: 82px 168px !important;
  }
}

/* Prefer element-linked view timelines for reliable Elementor scrolling. */
@supports (animation-timeline: view()) {
  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
    animation: pluAdvisorScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: view(block) !important;
    animation-range: exit 0% exit 38% !important;
  }

  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
    animation: pluBubbleScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: view(block) !important;
    animation-range: exit 26% exit 64% !important;
  }
}

/* IntersectionObserver-driven story states */
:root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
  animation: none !important;
  opacity: 0 !important;
  transform: translate3d(-22%, 24%, 0) scale(.90) !important;
  transition: opacity 900ms cubic-bezier(.16, 1, .3, 1),
              transform 1100ms cubic-bezier(.16, 1, .3, 1) !important;
}

:root body .elementor-167 .elementor-element.elementor-element-407069d.plu-advisor-visible > .e-con-inner::before {
  opacity: 1 !important;
  transform: translate3d(0,0,0) scale(1) !important;
}

:root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
  animation: none !important;
  opacity: 0 !important;
  transform: translate3d(-14px,16px,0) scale(.84) !important;
  transition: opacity 720ms cubic-bezier(.16, 1, .3, 1),
              transform 920ms cubic-bezier(.16, 1, .3, 1) !important;
}

:root body .elementor-167 .elementor-element.elementor-element-407069d.plu-bubble-visible > .e-con-inner::after {
  opacity: 1 !important;
  transform: translate3d(0,0,0) scale(1) !important;
}

/* Mobile pinned story runway */
@media (max-width: 767px) {
  .plu-hero-story {
    position: relative;
    height: calc(100svh + 260px);
    background: #fff;
  }

  .plu-hero-stage {
    position: sticky;
    top: 0;
    height: 100svh;
    overflow: hidden;
    background: #fff;
    isolation: isolate;
  }

  .plu-hero-stage > .elementor-element-407069d,
  .plu-hero-stage > .elementor-element-0e424fe {
    width: 100%;
  }

  .plu-story-sentinel {
    position: absolute;
    left: 0;
    width: 1px;
    pointer-events: none;
    visibility: hidden;
  }

  .plu-advisor-sentinel {
    top: calc(100svh + 35px);
    bottom: 0;
  }

  .plu-bubble-sentinel {
    top: calc(100svh + 135px);
    bottom: 0;
  }
}

@media (max-width: 767px) {
  .plu-story-sentinel {
    visibility: visible !important;
    opacity: 0;
  }
}.elementor-167 .elementor-element.elementor-element-407069d {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transform-origin: center center;
  pointer-events: none;
  box-shadow: 0 24px 64px rgba(69, 26, 112, .28), 0 0 0 1px rgba(255,255,255,.24) inset;
  animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both;
}

.elementor-167 .elementor-element.elementor-element-407069d::before {
  content: "";
  position: absolute;
  z-index: 3;
  inset: -48% -78%;
  pointer-events: none;
  background:
    radial-gradient(circle at 20% 76%, rgba(126, 52, 204, .64), transparent 22%),
    radial-gradient(circle at 74% 20%, rgba(255, 207, 91, .30), transparent 17%),
    linear-gradient(112deg,
      transparent 31%,
      rgba(95, 35, 160, 0) 40%,
      rgba(119, 53, 203, .26) 44%,
      rgba(174, 105, 255, .78) 47%,
      rgba(255, 204, 92, .96) 49%,
      rgba(255,255,255,.96) 50%,
      rgba(150, 70, 220, .78) 52%,
      rgba(87, 28, 149, .20) 56%,
      transparent 63%);
  background-size: 140% 140%, 140% 140%, 190% 190%;
  mix-blend-mode: screen;
  filter: blur(5px) saturate(140%);
  opacity: .56;
  transform: translate3d(-48%, 36%, 0) rotate(-8deg);
  animation:
    pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
    pluEnergyFlow 4.5s linear 2.3s infinite;
}

.elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "ดูหลักสูตรทั้งหมด  ↗";
  position: absolute;
  z-index: 6;
  top: 18px;
  right: 16px;
  padding: 9px 14px 9px;
  pointer-events: auto;
  cursor: pointer;
  color: #fff;
  background: rgba(55, 18, 88, .80);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(42, 12, 70, .24), inset 0 1px 0 rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(12px) saturate(135%);
  backdrop-filter: blur(12px) saturate(135%);
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
  animation:
    pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
    pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate;
}

.elementor-167 .elementor-element.elementor-element-407069d:focus-visible::after {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

@keyframes pluSceneIgnite {
  0% { filter: brightness(.52) saturate(.45) contrast(1.08) blur(3px); }
  55% { filter: brightness(1.18) saturate(1.28) contrast(1.04) blur(0); }
  100% { filter: brightness(1) saturate(1.08) contrast(1.02) blur(0); }
}

@keyframes pluEnergyRush {
  0% { opacity: 0; transform: translate3d(-48%, 36%, 0) rotate(-8deg) scale(.72); }
  42% { opacity: 1; }
  72% { opacity: .82; }
  100% { opacity: .56; transform: translate3d(8%, -5%, 0) rotate(-8deg) scale(1); }
}

@keyframes pluEnergyFlow {
  0% { background-position: 0% 60%, 20% 30%, 0% 60%; }
  100% { background-position: 90% 40%, 70% 60%, 100% 40%; }
}

@keyframes pluFloatingCtaIn {
  0% { opacity: 0; transform: translate3d(18px,-12px,0) scale(.84); }
  70% { opacity: 1; transform: translate3d(-2px,2px,0) scale(1.035); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluFloatingCtaFloat {
  from { transform: translate3d(0,0,0); box-shadow: 0 12px 30px rgba(42,12,70,.24), inset 0 1px 0 rgba(255,255,255,.22); }
  to { transform: translate3d(0,-4px,0); box-shadow: 0 18px 36px rgba(42,12,70,.34), 0 0 0 5px rgba(255,205,95,.08), inset 0 1px 0 rgba(255,255,255,.28); }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both;
    animation-timeline: auto, scroll(root block);
    animation-range: normal, 0 46vh;
  }
  @keyframes pluSceneScroll {
    from { background-position: center 58%; }
    to { background-position: center 39%; }
  }
}

@media (prefers-reduced-motion: reduce) {
  html body .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both !important;
    animation-timeline: auto, scroll(root block) !important;
    animation-range: normal, 0 46vh !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::before {
    animation: pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
               pluEnergyFlow 4.5s linear 2.3s infinite !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

/* High-specificity CTA layer to outrank stale generated CSS */
html body .elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "ดูหลักสูตรทั้งหมด  ↗";
  position: absolute;
  z-index: 6;
  top: 18px;
  right: 16px;
  bottom: auto;
  left: auto;
  width: auto;
  height: auto;
  padding: 9px 14px;
  pointer-events: none;
  color: #fff;
  background: rgba(55, 18, 88, .80);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(42, 12, 70, .24), inset 0 1px 0 rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(12px) saturate(135%);
  backdrop-filter: blur(12px) saturate(135%);
  mix-blend-mode: normal;
  filter: none;
  opacity: 1;
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
  animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
             pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate;
}

@media (prefers-reduced-motion: reduce) {
  html body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

/* Advisor scroll story layer */
.elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner {
  position: relative;
  isolation: isolate;
}

.elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
  content: "";
  position: absolute;
  z-index: 4;
  left: -7%;
  bottom: -3%;
  width: 48%;
  height: 72%;
  pointer-events: none;
  background-image: url("https://next-degree.com/wp-content/uploads/2026/06/advisor-jib-solo.png");
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: contain;
  opacity: 0;
  transform: translate3d(-22%, 24%, 0) scale(.90);
  transform-origin: left bottom;
  filter: drop-shadow(0 18px 24px rgba(40, 14, 66, .28));
  will-change: transform, opacity;
  animation: pluAdvisorLoad 1.1s cubic-bezier(.16, 1, .3, 1) 2.1s both;
}

.elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
  content: "ยินดีให้คำปรึกษานะคะ\Aวางแผนการเรียนไปด้วยกัน";
  position: absolute;
  z-index: 5;
  left: 33%;
  bottom: 31%;
  max-width: 53%;
  padding: 11px 13px 10px;
  pointer-events: none;
  color: #3e1a57;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 18px 18px 18px 5px;
  box-shadow: 0 16px 34px rgba(48,17,76,.20), inset 0 1px 0 rgba(255,255,255,.96);
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -.005em;
  white-space: pre-line;
  opacity: 0;
  transform: translate3d(-14px, 16px, 0) scale(.84);
  transform-origin: left bottom;
  will-change: transform, opacity;
  animation: pluBubbleLoad .9s cubic-bezier(.16, 1, .3, 1) 2.75s both;
}

@keyframes pluAdvisorLoad {
  0% { opacity: 0; transform: translate3d(-22%, 24%, 0) scale(.90); }
  70% { opacity: 1; transform: translate3d(2%, -1%, 0) scale(1.018); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluBubbleLoad {
  0% { opacity: 0; transform: translate3d(-14px,16px,0) scale(.84); }
  72% { opacity: 1; transform: translate3d(2px,-2px,0) scale(1.025); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluAdvisorScroll {
  0% { opacity: 0; transform: translate3d(-22%, 24%, 0) scale(.90); }
  72% { opacity: 1; transform: translate3d(2%, -1%, 0) scale(1.018); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluBubbleScroll {
  0% { opacity: 0; transform: translate3d(-14px,16px,0) scale(.84); }
  72% { opacity: 1; transform: translate3d(2px,-2px,0) scale(1.025); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
    animation: pluAdvisorScroll cubic-bezier(.16, 1, .3, 1) both;
    animation-timeline: scroll(root block);
    animation-range: 16px 96px;
  }

  .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
    animation: pluBubbleScroll cubic-bezier(.16, 1, .3, 1) both;
    animation-timeline: scroll(root block);
    animation-range: 82px 168px;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
    animation: pluAdvisorScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: scroll(root block) !important;
    animation-range: 16px 96px !important;
  }

  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
    animation: pluBubbleScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: scroll(root block) !important;
    animation-range: 82px 168px !important;
  }
}

/* Prefer element-linked view timelines for reliable Elementor scrolling. */
@supports (animation-timeline: view()) {
  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
    animation: pluAdvisorScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: view(block) !important;
    animation-range: exit 0% exit 38% !important;
  }

  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
    animation: pluBubbleScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: view(block) !important;
    animation-range: exit 26% exit 64% !important;
  }
}

/* IntersectionObserver-driven story states */
:root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
  animation: none !important;
  opacity: 0 !important;
  transform: translate3d(-22%, 24%, 0) scale(.90) !important;
  transition: opacity 900ms cubic-bezier(.16, 1, .3, 1),
              transform 1100ms cubic-bezier(.16, 1, .3, 1) !important;
}

:root body .elementor-167 .elementor-element.elementor-element-407069d.plu-advisor-visible > .e-con-inner::before {
  opacity: 1 !important;
  transform: translate3d(0,0,0) scale(1) !important;
}

:root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
  animation: none !important;
  opacity: 0 !important;
  transform: translate3d(-14px,16px,0) scale(.84) !important;
  transition: opacity 720ms cubic-bezier(.16, 1, .3, 1),
              transform 920ms cubic-bezier(.16, 1, .3, 1) !important;
}

:root body .elementor-167 .elementor-element.elementor-element-407069d.plu-bubble-visible > .e-con-inner::after {
  opacity: 1 !important;
  transform: translate3d(0,0,0) scale(1) !important;
}

/* Mobile pinned story runway */
@media (max-width: 767px) {
  .plu-hero-story {
    position: relative;
    height: calc(100svh + 260px);
    background: #fff;
  }

  .plu-hero-stage {
    position: sticky;
    top: 0;
    height: 100svh;
    overflow: hidden;
    background: #fff;
    isolation: isolate;
  }

  .plu-hero-stage > .elementor-element-407069d,
  .plu-hero-stage > .elementor-element-0e424fe {
    width: 100%;
  }

  .plu-story-sentinel {
    position: absolute;
    left: 0;
    width: 1px;
    pointer-events: none;
    visibility: hidden;
  }

  .plu-advisor-sentinel {
    top: calc(100svh + 35px);
    bottom: 0;
  }

  .plu-bubble-sentinel {
    top: calc(100svh + 135px);
    bottom: 0;
  }
}.elementor-167 .elementor-element.elementor-element-407069d {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transform-origin: center center;
  pointer-events: none;
  box-shadow: 0 24px 64px rgba(69, 26, 112, .28), 0 0 0 1px rgba(255,255,255,.24) inset;
  animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both;
}

.elementor-167 .elementor-element.elementor-element-407069d::before {
  content: "";
  position: absolute;
  z-index: 3;
  inset: -48% -78%;
  pointer-events: none;
  background:
    radial-gradient(circle at 20% 76%, rgba(126, 52, 204, .64), transparent 22%),
    radial-gradient(circle at 74% 20%, rgba(255, 207, 91, .30), transparent 17%),
    linear-gradient(112deg,
      transparent 31%,
      rgba(95, 35, 160, 0) 40%,
      rgba(119, 53, 203, .26) 44%,
      rgba(174, 105, 255, .78) 47%,
      rgba(255, 204, 92, .96) 49%,
      rgba(255,255,255,.96) 50%,
      rgba(150, 70, 220, .78) 52%,
      rgba(87, 28, 149, .20) 56%,
      transparent 63%);
  background-size: 140% 140%, 140% 140%, 190% 190%;
  mix-blend-mode: screen;
  filter: blur(5px) saturate(140%);
  opacity: .56;
  transform: translate3d(-48%, 36%, 0) rotate(-8deg);
  animation:
    pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
    pluEnergyFlow 4.5s linear 2.3s infinite;
}

.elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "ดูหลักสูตรทั้งหมด  ↗";
  position: absolute;
  z-index: 6;
  top: 18px;
  right: 16px;
  padding: 9px 14px 9px;
  pointer-events: auto;
  cursor: pointer;
  color: #fff;
  background: rgba(55, 18, 88, .80);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(42, 12, 70, .24), inset 0 1px 0 rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(12px) saturate(135%);
  backdrop-filter: blur(12px) saturate(135%);
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
  animation:
    pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
    pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate;
}

.elementor-167 .elementor-element.elementor-element-407069d:focus-visible::after {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

@keyframes pluSceneIgnite {
  0% { filter: brightness(.52) saturate(.45) contrast(1.08) blur(3px); }
  55% { filter: brightness(1.18) saturate(1.28) contrast(1.04) blur(0); }
  100% { filter: brightness(1) saturate(1.08) contrast(1.02) blur(0); }
}

@keyframes pluEnergyRush {
  0% { opacity: 0; transform: translate3d(-48%, 36%, 0) rotate(-8deg) scale(.72); }
  42% { opacity: 1; }
  72% { opacity: .82; }
  100% { opacity: .56; transform: translate3d(8%, -5%, 0) rotate(-8deg) scale(1); }
}

@keyframes pluEnergyFlow {
  0% { background-position: 0% 60%, 20% 30%, 0% 60%; }
  100% { background-position: 90% 40%, 70% 60%, 100% 40%; }
}

@keyframes pluFloatingCtaIn {
  0% { opacity: 0; transform: translate3d(18px,-12px,0) scale(.84); }
  70% { opacity: 1; transform: translate3d(-2px,2px,0) scale(1.035); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluFloatingCtaFloat {
  from { transform: translate3d(0,0,0); box-shadow: 0 12px 30px rgba(42,12,70,.24), inset 0 1px 0 rgba(255,255,255,.22); }
  to { transform: translate3d(0,-4px,0); box-shadow: 0 18px 36px rgba(42,12,70,.34), 0 0 0 5px rgba(255,205,95,.08), inset 0 1px 0 rgba(255,255,255,.28); }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both;
    animation-timeline: auto, scroll(root block);
    animation-range: normal, 0 46vh;
  }
  @keyframes pluSceneScroll {
    from { background-position: center 58%; }
    to { background-position: center 39%; }
  }
}

@media (prefers-reduced-motion: reduce) {
  html body .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both !important;
    animation-timeline: auto, scroll(root block) !important;
    animation-range: normal, 0 46vh !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::before {
    animation: pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
               pluEnergyFlow 4.5s linear 2.3s infinite !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

/* High-specificity CTA layer to outrank stale generated CSS */
html body .elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "ดูหลักสูตรทั้งหมด  ↗";
  position: absolute;
  z-index: 6;
  top: 18px;
  right: 16px;
  bottom: auto;
  left: auto;
  width: auto;
  height: auto;
  padding: 9px 14px;
  pointer-events: none;
  color: #fff;
  background: rgba(55, 18, 88, .80);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(42, 12, 70, .24), inset 0 1px 0 rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(12px) saturate(135%);
  backdrop-filter: blur(12px) saturate(135%);
  mix-blend-mode: normal;
  filter: none;
  opacity: 1;
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
  animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
             pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate;
}

@media (prefers-reduced-motion: reduce) {
  html body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

/* Advisor scroll story layer */
.elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner {
  position: relative;
  isolation: isolate;
}

.elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
  content: "";
  position: absolute;
  z-index: 4;
  left: -7%;
  bottom: -3%;
  width: 48%;
  height: 72%;
  pointer-events: none;
  background-image: url("https://next-degree.com/wp-content/uploads/2026/06/advisor-jib-solo.png");
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: contain;
  opacity: 0;
  transform: translate3d(-22%, 24%, 0) scale(.90);
  transform-origin: left bottom;
  filter: drop-shadow(0 18px 24px rgba(40, 14, 66, .28));
  will-change: transform, opacity;
  animation: pluAdvisorLoad 1.1s cubic-bezier(.16, 1, .3, 1) 2.1s both;
}

.elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
  content: "ยินดีให้คำปรึกษานะคะ\Aวางแผนการเรียนไปด้วยกัน";
  position: absolute;
  z-index: 5;
  left: 33%;
  bottom: 31%;
  max-width: 53%;
  padding: 11px 13px 10px;
  pointer-events: none;
  color: #3e1a57;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 18px 18px 18px 5px;
  box-shadow: 0 16px 34px rgba(48,17,76,.20), inset 0 1px 0 rgba(255,255,255,.96);
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -.005em;
  white-space: pre-line;
  opacity: 0;
  transform: translate3d(-14px, 16px, 0) scale(.84);
  transform-origin: left bottom;
  will-change: transform, opacity;
  animation: pluBubbleLoad .9s cubic-bezier(.16, 1, .3, 1) 2.75s both;
}

@keyframes pluAdvisorLoad {
  0% { opacity: 0; transform: translate3d(-22%, 24%, 0) scale(.90); }
  70% { opacity: 1; transform: translate3d(2%, -1%, 0) scale(1.018); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluBubbleLoad {
  0% { opacity: 0; transform: translate3d(-14px,16px,0) scale(.84); }
  72% { opacity: 1; transform: translate3d(2px,-2px,0) scale(1.025); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluAdvisorScroll {
  0% { opacity: 0; transform: translate3d(-22%, 24%, 0) scale(.90); }
  72% { opacity: 1; transform: translate3d(2%, -1%, 0) scale(1.018); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluBubbleScroll {
  0% { opacity: 0; transform: translate3d(-14px,16px,0) scale(.84); }
  72% { opacity: 1; transform: translate3d(2px,-2px,0) scale(1.025); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
    animation: pluAdvisorScroll cubic-bezier(.16, 1, .3, 1) both;
    animation-timeline: scroll(root block);
    animation-range: 16px 96px;
  }

  .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
    animation: pluBubbleScroll cubic-bezier(.16, 1, .3, 1) both;
    animation-timeline: scroll(root block);
    animation-range: 82px 168px;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
    animation: pluAdvisorScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: scroll(root block) !important;
    animation-range: 16px 96px !important;
  }

  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
    animation: pluBubbleScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: scroll(root block) !important;
    animation-range: 82px 168px !important;
  }
}

/* Prefer element-linked view timelines for reliable Elementor scrolling. */
@supports (animation-timeline: view()) {
  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
    animation: pluAdvisorScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: view(block) !important;
    animation-range: exit 0% exit 38% !important;
  }

  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
    animation: pluBubbleScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: view(block) !important;
    animation-range: exit 26% exit 64% !important;
  }
}

/* IntersectionObserver-driven story states */
:root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
  animation: none !important;
  opacity: 0 !important;
  transform: translate3d(-22%, 24%, 0) scale(.90) !important;
  transition: opacity 900ms cubic-bezier(.16, 1, .3, 1),
              transform 1100ms cubic-bezier(.16, 1, .3, 1) !important;
}

:root body .elementor-167 .elementor-element.elementor-element-407069d.plu-advisor-visible > .e-con-inner::before {
  opacity: 1 !important;
  transform: translate3d(0,0,0) scale(1) !important;
}

:root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
  animation: none !important;
  opacity: 0 !important;
  transform: translate3d(-14px,16px,0) scale(.84) !important;
  transition: opacity 720ms cubic-bezier(.16, 1, .3, 1),
              transform 920ms cubic-bezier(.16, 1, .3, 1) !important;
}

:root body .elementor-167 .elementor-element.elementor-element-407069d.plu-bubble-visible > .e-con-inner::after {
  opacity: 1 !important;
  transform: translate3d(0,0,0) scale(1) !important;
}.elementor-167 .elementor-element.elementor-element-407069d {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transform-origin: center center;
  pointer-events: none;
  box-shadow: 0 24px 64px rgba(69, 26, 112, .28), 0 0 0 1px rgba(255,255,255,.24) inset;
  animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both;
}

.elementor-167 .elementor-element.elementor-element-407069d::before {
  content: "";
  position: absolute;
  z-index: 3;
  inset: -48% -78%;
  pointer-events: none;
  background:
    radial-gradient(circle at 20% 76%, rgba(126, 52, 204, .64), transparent 22%),
    radial-gradient(circle at 74% 20%, rgba(255, 207, 91, .30), transparent 17%),
    linear-gradient(112deg,
      transparent 31%,
      rgba(95, 35, 160, 0) 40%,
      rgba(119, 53, 203, .26) 44%,
      rgba(174, 105, 255, .78) 47%,
      rgba(255, 204, 92, .96) 49%,
      rgba(255,255,255,.96) 50%,
      rgba(150, 70, 220, .78) 52%,
      rgba(87, 28, 149, .20) 56%,
      transparent 63%);
  background-size: 140% 140%, 140% 140%, 190% 190%;
  mix-blend-mode: screen;
  filter: blur(5px) saturate(140%);
  opacity: .56;
  transform: translate3d(-48%, 36%, 0) rotate(-8deg);
  animation:
    pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
    pluEnergyFlow 4.5s linear 2.3s infinite;
}

.elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "ดูหลักสูตรทั้งหมด  ↗";
  position: absolute;
  z-index: 6;
  top: 18px;
  right: 16px;
  padding: 9px 14px 9px;
  pointer-events: auto;
  cursor: pointer;
  color: #fff;
  background: rgba(55, 18, 88, .80);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(42, 12, 70, .24), inset 0 1px 0 rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(12px) saturate(135%);
  backdrop-filter: blur(12px) saturate(135%);
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
  animation:
    pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
    pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate;
}

.elementor-167 .elementor-element.elementor-element-407069d:focus-visible::after {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

@keyframes pluSceneIgnite {
  0% { filter: brightness(.52) saturate(.45) contrast(1.08) blur(3px); }
  55% { filter: brightness(1.18) saturate(1.28) contrast(1.04) blur(0); }
  100% { filter: brightness(1) saturate(1.08) contrast(1.02) blur(0); }
}

@keyframes pluEnergyRush {
  0% { opacity: 0; transform: translate3d(-48%, 36%, 0) rotate(-8deg) scale(.72); }
  42% { opacity: 1; }
  72% { opacity: .82; }
  100% { opacity: .56; transform: translate3d(8%, -5%, 0) rotate(-8deg) scale(1); }
}

@keyframes pluEnergyFlow {
  0% { background-position: 0% 60%, 20% 30%, 0% 60%; }
  100% { background-position: 90% 40%, 70% 60%, 100% 40%; }
}

@keyframes pluFloatingCtaIn {
  0% { opacity: 0; transform: translate3d(18px,-12px,0) scale(.84); }
  70% { opacity: 1; transform: translate3d(-2px,2px,0) scale(1.035); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluFloatingCtaFloat {
  from { transform: translate3d(0,0,0); box-shadow: 0 12px 30px rgba(42,12,70,.24), inset 0 1px 0 rgba(255,255,255,.22); }
  to { transform: translate3d(0,-4px,0); box-shadow: 0 18px 36px rgba(42,12,70,.34), 0 0 0 5px rgba(255,205,95,.08), inset 0 1px 0 rgba(255,255,255,.28); }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both;
    animation-timeline: auto, scroll(root block);
    animation-range: normal, 0 46vh;
  }
  @keyframes pluSceneScroll {
    from { background-position: center 58%; }
    to { background-position: center 39%; }
  }
}

@media (prefers-reduced-motion: reduce) {
  html body .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both !important;
    animation-timeline: auto, scroll(root block) !important;
    animation-range: normal, 0 46vh !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::before {
    animation: pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
               pluEnergyFlow 4.5s linear 2.3s infinite !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

/* High-specificity CTA layer to outrank stale generated CSS */
html body .elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "ดูหลักสูตรทั้งหมด  ↗";
  position: absolute;
  z-index: 6;
  top: 18px;
  right: 16px;
  bottom: auto;
  left: auto;
  width: auto;
  height: auto;
  padding: 9px 14px;
  pointer-events: none;
  color: #fff;
  background: rgba(55, 18, 88, .80);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(42, 12, 70, .24), inset 0 1px 0 rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(12px) saturate(135%);
  backdrop-filter: blur(12px) saturate(135%);
  mix-blend-mode: normal;
  filter: none;
  opacity: 1;
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
  animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
             pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate;
}

@media (prefers-reduced-motion: reduce) {
  html body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

/* Advisor scroll story layer */
.elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner {
  position: relative;
  isolation: isolate;
}

.elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
  content: "";
  position: absolute;
  z-index: 4;
  left: -7%;
  bottom: -3%;
  width: 48%;
  height: 72%;
  pointer-events: none;
  background-image: url("https://next-degree.com/wp-content/uploads/2026/06/advisor-jib-solo.png");
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: contain;
  opacity: 0;
  transform: translate3d(-22%, 24%, 0) scale(.90);
  transform-origin: left bottom;
  filter: drop-shadow(0 18px 24px rgba(40, 14, 66, .28));
  will-change: transform, opacity;
  animation: pluAdvisorLoad 1.1s cubic-bezier(.16, 1, .3, 1) 2.1s both;
}

.elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
  content: "ยินดีให้คำปรึกษานะคะ\Aวางแผนการเรียนไปด้วยกัน";
  position: absolute;
  z-index: 5;
  left: 33%;
  bottom: 31%;
  max-width: 53%;
  padding: 11px 13px 10px;
  pointer-events: none;
  color: #3e1a57;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 18px 18px 18px 5px;
  box-shadow: 0 16px 34px rgba(48,17,76,.20), inset 0 1px 0 rgba(255,255,255,.96);
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -.005em;
  white-space: pre-line;
  opacity: 0;
  transform: translate3d(-14px, 16px, 0) scale(.84);
  transform-origin: left bottom;
  will-change: transform, opacity;
  animation: pluBubbleLoad .9s cubic-bezier(.16, 1, .3, 1) 2.75s both;
}

@keyframes pluAdvisorLoad {
  0% { opacity: 0; transform: translate3d(-22%, 24%, 0) scale(.90); }
  70% { opacity: 1; transform: translate3d(2%, -1%, 0) scale(1.018); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluBubbleLoad {
  0% { opacity: 0; transform: translate3d(-14px,16px,0) scale(.84); }
  72% { opacity: 1; transform: translate3d(2px,-2px,0) scale(1.025); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluAdvisorScroll {
  0% { opacity: 0; transform: translate3d(-22%, 24%, 0) scale(.90); }
  72% { opacity: 1; transform: translate3d(2%, -1%, 0) scale(1.018); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluBubbleScroll {
  0% { opacity: 0; transform: translate3d(-14px,16px,0) scale(.84); }
  72% { opacity: 1; transform: translate3d(2px,-2px,0) scale(1.025); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
    animation: pluAdvisorScroll cubic-bezier(.16, 1, .3, 1) both;
    animation-timeline: scroll(root block);
    animation-range: 16px 96px;
  }

  .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
    animation: pluBubbleScroll cubic-bezier(.16, 1, .3, 1) both;
    animation-timeline: scroll(root block);
    animation-range: 82px 168px;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
    animation: pluAdvisorScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: scroll(root block) !important;
    animation-range: 16px 96px !important;
  }

  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
    animation: pluBubbleScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: scroll(root block) !important;
    animation-range: 82px 168px !important;
  }
}

/* Prefer element-linked view timelines for reliable Elementor scrolling. */
@supports (animation-timeline: view()) {
  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
    animation: pluAdvisorScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: view(block) !important;
    animation-range: exit 0% exit 38% !important;
  }

  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
    animation: pluBubbleScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: view(block) !important;
    animation-range: exit 26% exit 64% !important;
  }
}.elementor-167 .elementor-element.elementor-element-407069d {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transform-origin: center center;
  pointer-events: none;
  box-shadow: 0 24px 64px rgba(69, 26, 112, .28), 0 0 0 1px rgba(255,255,255,.24) inset;
  animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both;
}

.elementor-167 .elementor-element.elementor-element-407069d::before {
  content: "";
  position: absolute;
  z-index: 3;
  inset: -48% -78%;
  pointer-events: none;
  background:
    radial-gradient(circle at 20% 76%, rgba(126, 52, 204, .64), transparent 22%),
    radial-gradient(circle at 74% 20%, rgba(255, 207, 91, .30), transparent 17%),
    linear-gradient(112deg,
      transparent 31%,
      rgba(95, 35, 160, 0) 40%,
      rgba(119, 53, 203, .26) 44%,
      rgba(174, 105, 255, .78) 47%,
      rgba(255, 204, 92, .96) 49%,
      rgba(255,255,255,.96) 50%,
      rgba(150, 70, 220, .78) 52%,
      rgba(87, 28, 149, .20) 56%,
      transparent 63%);
  background-size: 140% 140%, 140% 140%, 190% 190%;
  mix-blend-mode: screen;
  filter: blur(5px) saturate(140%);
  opacity: .56;
  transform: translate3d(-48%, 36%, 0) rotate(-8deg);
  animation:
    pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
    pluEnergyFlow 4.5s linear 2.3s infinite;
}

.elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "ดูหลักสูตรทั้งหมด  ↗";
  position: absolute;
  z-index: 6;
  top: 18px;
  right: 16px;
  padding: 9px 14px 9px;
  pointer-events: auto;
  cursor: pointer;
  color: #fff;
  background: rgba(55, 18, 88, .80);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(42, 12, 70, .24), inset 0 1px 0 rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(12px) saturate(135%);
  backdrop-filter: blur(12px) saturate(135%);
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
  animation:
    pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
    pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate;
}

.elementor-167 .elementor-element.elementor-element-407069d:focus-visible::after {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

@keyframes pluSceneIgnite {
  0% { filter: brightness(.52) saturate(.45) contrast(1.08) blur(3px); }
  55% { filter: brightness(1.18) saturate(1.28) contrast(1.04) blur(0); }
  100% { filter: brightness(1) saturate(1.08) contrast(1.02) blur(0); }
}

@keyframes pluEnergyRush {
  0% { opacity: 0; transform: translate3d(-48%, 36%, 0) rotate(-8deg) scale(.72); }
  42% { opacity: 1; }
  72% { opacity: .82; }
  100% { opacity: .56; transform: translate3d(8%, -5%, 0) rotate(-8deg) scale(1); }
}

@keyframes pluEnergyFlow {
  0% { background-position: 0% 60%, 20% 30%, 0% 60%; }
  100% { background-position: 90% 40%, 70% 60%, 100% 40%; }
}

@keyframes pluFloatingCtaIn {
  0% { opacity: 0; transform: translate3d(18px,-12px,0) scale(.84); }
  70% { opacity: 1; transform: translate3d(-2px,2px,0) scale(1.035); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluFloatingCtaFloat {
  from { transform: translate3d(0,0,0); box-shadow: 0 12px 30px rgba(42,12,70,.24), inset 0 1px 0 rgba(255,255,255,.22); }
  to { transform: translate3d(0,-4px,0); box-shadow: 0 18px 36px rgba(42,12,70,.34), 0 0 0 5px rgba(255,205,95,.08), inset 0 1px 0 rgba(255,255,255,.28); }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both;
    animation-timeline: auto, scroll(root block);
    animation-range: normal, 0 46vh;
  }
  @keyframes pluSceneScroll {
    from { background-position: center 58%; }
    to { background-position: center 39%; }
  }
}

@media (prefers-reduced-motion: reduce) {
  html body .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both !important;
    animation-timeline: auto, scroll(root block) !important;
    animation-range: normal, 0 46vh !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::before {
    animation: pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
               pluEnergyFlow 4.5s linear 2.3s infinite !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

/* High-specificity CTA layer to outrank stale generated CSS */
html body .elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "ดูหลักสูตรทั้งหมด  ↗";
  position: absolute;
  z-index: 6;
  top: 18px;
  right: 16px;
  bottom: auto;
  left: auto;
  width: auto;
  height: auto;
  padding: 9px 14px;
  pointer-events: none;
  color: #fff;
  background: rgba(55, 18, 88, .80);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(42, 12, 70, .24), inset 0 1px 0 rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(12px) saturate(135%);
  backdrop-filter: blur(12px) saturate(135%);
  mix-blend-mode: normal;
  filter: none;
  opacity: 1;
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
  animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
             pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate;
}

@media (prefers-reduced-motion: reduce) {
  html body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

/* Advisor scroll story layer */
.elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner {
  position: relative;
  isolation: isolate;
}

.elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
  content: "";
  position: absolute;
  z-index: 4;
  left: -7%;
  bottom: -3%;
  width: 48%;
  height: 72%;
  pointer-events: none;
  background-image: url("https://next-degree.com/wp-content/uploads/2026/06/advisor-jib-solo.png");
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: contain;
  opacity: 0;
  transform: translate3d(-22%, 24%, 0) scale(.90);
  transform-origin: left bottom;
  filter: drop-shadow(0 18px 24px rgba(40, 14, 66, .28));
  will-change: transform, opacity;
  animation: pluAdvisorLoad 1.1s cubic-bezier(.16, 1, .3, 1) 2.1s both;
}

.elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
  content: "ยินดีให้คำปรึกษานะคะ\Aวางแผนการเรียนไปด้วยกัน";
  position: absolute;
  z-index: 5;
  left: 33%;
  bottom: 31%;
  max-width: 53%;
  padding: 11px 13px 10px;
  pointer-events: none;
  color: #3e1a57;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 18px 18px 18px 5px;
  box-shadow: 0 16px 34px rgba(48,17,76,.20), inset 0 1px 0 rgba(255,255,255,.96);
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -.005em;
  white-space: pre-line;
  opacity: 0;
  transform: translate3d(-14px, 16px, 0) scale(.84);
  transform-origin: left bottom;
  will-change: transform, opacity;
  animation: pluBubbleLoad .9s cubic-bezier(.16, 1, .3, 1) 2.75s both;
}

@keyframes pluAdvisorLoad {
  0% { opacity: 0; transform: translate3d(-22%, 24%, 0) scale(.90); }
  70% { opacity: 1; transform: translate3d(2%, -1%, 0) scale(1.018); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluBubbleLoad {
  0% { opacity: 0; transform: translate3d(-14px,16px,0) scale(.84); }
  72% { opacity: 1; transform: translate3d(2px,-2px,0) scale(1.025); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluAdvisorScroll {
  0% { opacity: 0; transform: translate3d(-22%, 24%, 0) scale(.90); }
  72% { opacity: 1; transform: translate3d(2%, -1%, 0) scale(1.018); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluBubbleScroll {
  0% { opacity: 0; transform: translate3d(-14px,16px,0) scale(.84); }
  72% { opacity: 1; transform: translate3d(2px,-2px,0) scale(1.025); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
    animation: pluAdvisorScroll cubic-bezier(.16, 1, .3, 1) both;
    animation-timeline: scroll(root block);
    animation-range: 16px 96px;
  }

  .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
    animation: pluBubbleScroll cubic-bezier(.16, 1, .3, 1) both;
    animation-timeline: scroll(root block);
    animation-range: 82px 168px;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::before {
    animation: pluAdvisorScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: scroll(root block) !important;
    animation-range: 16px 96px !important;
  }

  :root body .elementor-167 .elementor-element.elementor-element-407069d > .e-con-inner::after {
    animation: pluBubbleScroll cubic-bezier(.16, 1, .3, 1) both !important;
    animation-timeline: scroll(root block) !important;
    animation-range: 82px 168px !important;
  }
}.elementor-167 .elementor-element.elementor-element-407069d {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transform-origin: center center;
  pointer-events: none;
  box-shadow: 0 24px 64px rgba(69, 26, 112, .28), 0 0 0 1px rgba(255,255,255,.24) inset;
  animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both;
}

.elementor-167 .elementor-element.elementor-element-407069d::before {
  content: "";
  position: absolute;
  z-index: 3;
  inset: -48% -78%;
  pointer-events: none;
  background:
    radial-gradient(circle at 20% 76%, rgba(126, 52, 204, .64), transparent 22%),
    radial-gradient(circle at 74% 20%, rgba(255, 207, 91, .30), transparent 17%),
    linear-gradient(112deg,
      transparent 31%,
      rgba(95, 35, 160, 0) 40%,
      rgba(119, 53, 203, .26) 44%,
      rgba(174, 105, 255, .78) 47%,
      rgba(255, 204, 92, .96) 49%,
      rgba(255,255,255,.96) 50%,
      rgba(150, 70, 220, .78) 52%,
      rgba(87, 28, 149, .20) 56%,
      transparent 63%);
  background-size: 140% 140%, 140% 140%, 190% 190%;
  mix-blend-mode: screen;
  filter: blur(5px) saturate(140%);
  opacity: .56;
  transform: translate3d(-48%, 36%, 0) rotate(-8deg);
  animation:
    pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
    pluEnergyFlow 4.5s linear 2.3s infinite;
}

.elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "ดูหลักสูตรทั้งหมด  ↗";
  position: absolute;
  z-index: 6;
  top: 18px;
  right: 16px;
  padding: 9px 14px 9px;
  pointer-events: auto;
  cursor: pointer;
  color: #fff;
  background: rgba(55, 18, 88, .80);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(42, 12, 70, .24), inset 0 1px 0 rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(12px) saturate(135%);
  backdrop-filter: blur(12px) saturate(135%);
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
  animation:
    pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
    pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate;
}

.elementor-167 .elementor-element.elementor-element-407069d:focus-visible::after {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

@keyframes pluSceneIgnite {
  0% { filter: brightness(.52) saturate(.45) contrast(1.08) blur(3px); }
  55% { filter: brightness(1.18) saturate(1.28) contrast(1.04) blur(0); }
  100% { filter: brightness(1) saturate(1.08) contrast(1.02) blur(0); }
}

@keyframes pluEnergyRush {
  0% { opacity: 0; transform: translate3d(-48%, 36%, 0) rotate(-8deg) scale(.72); }
  42% { opacity: 1; }
  72% { opacity: .82; }
  100% { opacity: .56; transform: translate3d(8%, -5%, 0) rotate(-8deg) scale(1); }
}

@keyframes pluEnergyFlow {
  0% { background-position: 0% 60%, 20% 30%, 0% 60%; }
  100% { background-position: 90% 40%, 70% 60%, 100% 40%; }
}

@keyframes pluFloatingCtaIn {
  0% { opacity: 0; transform: translate3d(18px,-12px,0) scale(.84); }
  70% { opacity: 1; transform: translate3d(-2px,2px,0) scale(1.035); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluFloatingCtaFloat {
  from { transform: translate3d(0,0,0); box-shadow: 0 12px 30px rgba(42,12,70,.24), inset 0 1px 0 rgba(255,255,255,.22); }
  to { transform: translate3d(0,-4px,0); box-shadow: 0 18px 36px rgba(42,12,70,.34), 0 0 0 5px rgba(255,205,95,.08), inset 0 1px 0 rgba(255,255,255,.28); }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both;
    animation-timeline: auto, scroll(root block);
    animation-range: normal, 0 46vh;
  }
  @keyframes pluSceneScroll {
    from { background-position: center 58%; }
    to { background-position: center 39%; }
  }
}

@media (prefers-reduced-motion: reduce) {
  html body .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both !important;
    animation-timeline: auto, scroll(root block) !important;
    animation-range: normal, 0 46vh !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::before {
    animation: pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
               pluEnergyFlow 4.5s linear 2.3s infinite !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

/* High-specificity CTA layer to outrank stale generated CSS */
html body .elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "ดูหลักสูตรทั้งหมด  ↗";
  position: absolute;
  z-index: 6;
  top: 18px;
  right: 16px;
  bottom: auto;
  left: auto;
  width: auto;
  height: auto;
  padding: 9px 14px;
  pointer-events: none;
  color: #fff;
  background: rgba(55, 18, 88, .80);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(42, 12, 70, .24), inset 0 1px 0 rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(12px) saturate(135%);
  backdrop-filter: blur(12px) saturate(135%);
  mix-blend-mode: normal;
  filter: none;
  opacity: 1;
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
  animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
             pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate;
}

@media (prefers-reduced-motion: reduce) {
  html body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}.elementor-167 .elementor-element.elementor-element-407069d {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transform-origin: center center;
  pointer-events: none;
  box-shadow: 0 24px 64px rgba(69, 26, 112, .28), 0 0 0 1px rgba(255,255,255,.24) inset;
  animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both;
}

.elementor-167 .elementor-element.elementor-element-407069d::before {
  content: "";
  position: absolute;
  z-index: 3;
  inset: -48% -78%;
  pointer-events: none;
  background:
    radial-gradient(circle at 20% 76%, rgba(126, 52, 204, .64), transparent 22%),
    radial-gradient(circle at 74% 20%, rgba(255, 207, 91, .30), transparent 17%),
    linear-gradient(112deg,
      transparent 31%,
      rgba(95, 35, 160, 0) 40%,
      rgba(119, 53, 203, .26) 44%,
      rgba(174, 105, 255, .78) 47%,
      rgba(255, 204, 92, .96) 49%,
      rgba(255,255,255,.96) 50%,
      rgba(150, 70, 220, .78) 52%,
      rgba(87, 28, 149, .20) 56%,
      transparent 63%);
  background-size: 140% 140%, 140% 140%, 190% 190%;
  mix-blend-mode: screen;
  filter: blur(5px) saturate(140%);
  opacity: .56;
  transform: translate3d(-48%, 36%, 0) rotate(-8deg);
  animation:
    pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
    pluEnergyFlow 4.5s linear 2.3s infinite;
}

.elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "ดูหลักสูตรทั้งหมด  ↗";
  position: absolute;
  z-index: 6;
  top: 18px;
  right: 16px;
  padding: 9px 14px 9px;
  pointer-events: auto;
  cursor: pointer;
  color: #fff;
  background: rgba(55, 18, 88, .80);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(42, 12, 70, .24), inset 0 1px 0 rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(12px) saturate(135%);
  backdrop-filter: blur(12px) saturate(135%);
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
  animation:
    pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
    pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate;
}

.elementor-167 .elementor-element.elementor-element-407069d:focus-visible::after {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

@keyframes pluSceneIgnite {
  0% { filter: brightness(.52) saturate(.45) contrast(1.08) blur(3px); }
  55% { filter: brightness(1.18) saturate(1.28) contrast(1.04) blur(0); }
  100% { filter: brightness(1) saturate(1.08) contrast(1.02) blur(0); }
}

@keyframes pluEnergyRush {
  0% { opacity: 0; transform: translate3d(-48%, 36%, 0) rotate(-8deg) scale(.72); }
  42% { opacity: 1; }
  72% { opacity: .82; }
  100% { opacity: .56; transform: translate3d(8%, -5%, 0) rotate(-8deg) scale(1); }
}

@keyframes pluEnergyFlow {
  0% { background-position: 0% 60%, 20% 30%, 0% 60%; }
  100% { background-position: 90% 40%, 70% 60%, 100% 40%; }
}

@keyframes pluFloatingCtaIn {
  0% { opacity: 0; transform: translate3d(18px,-12px,0) scale(.84); }
  70% { opacity: 1; transform: translate3d(-2px,2px,0) scale(1.035); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluFloatingCtaFloat {
  from { transform: translate3d(0,0,0); box-shadow: 0 12px 30px rgba(42,12,70,.24), inset 0 1px 0 rgba(255,255,255,.22); }
  to { transform: translate3d(0,-4px,0); box-shadow: 0 18px 36px rgba(42,12,70,.34), 0 0 0 5px rgba(255,205,95,.08), inset 0 1px 0 rgba(255,255,255,.28); }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both;
    animation-timeline: auto, scroll(root block);
    animation-range: normal, 0 46vh;
  }
  @keyframes pluSceneScroll {
    from { background-position: center 58%; }
    to { background-position: center 39%; }
  }
}

@media (prefers-reduced-motion: reduce) {
  html body .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both !important;
    animation-timeline: auto, scroll(root block) !important;
    animation-range: normal, 0 46vh !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::before {
    animation: pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
               pluEnergyFlow 4.5s linear 2.3s infinite !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}

/* High-specificity CTA layer to outrank stale generated CSS */
html body .elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "ดูหลักสูตรทั้งหมด  ↗";
  position: absolute;
  z-index: 6;
  top: 18px;
  right: 16px;
  bottom: auto;
  left: auto;
  width: auto;
  height: auto;
  padding: 9px 14px;
  pointer-events: none;
  color: #fff;
  background: rgba(55, 18, 88, .80);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(42, 12, 70, .24), inset 0 1px 0 rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(12px) saturate(135%);
  backdrop-filter: blur(12px) saturate(135%);
  mix-blend-mode: normal;
  filter: none;
  opacity: 1;
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
  animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
             pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate;
}

@media (prefers-reduced-motion: reduce) {
  html body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}.elementor-167 .elementor-element.elementor-element-407069d {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transform-origin: center center;
  pointer-events: none;
  box-shadow: 0 24px 64px rgba(69, 26, 112, .28), 0 0 0 1px rgba(255,255,255,.24) inset;
  animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both;
}

.elementor-167 .elementor-element.elementor-element-407069d::before {
  content: "";
  position: absolute;
  z-index: 3;
  inset: -48% -78%;
  pointer-events: none;
  background:
    radial-gradient(circle at 20% 76%, rgba(126, 52, 204, .64), transparent 22%),
    radial-gradient(circle at 74% 20%, rgba(255, 207, 91, .30), transparent 17%),
    linear-gradient(112deg,
      transparent 31%,
      rgba(95, 35, 160, 0) 40%,
      rgba(119, 53, 203, .26) 44%,
      rgba(174, 105, 255, .78) 47%,
      rgba(255, 204, 92, .96) 49%,
      rgba(255,255,255,.96) 50%,
      rgba(150, 70, 220, .78) 52%,
      rgba(87, 28, 149, .20) 56%,
      transparent 63%);
  background-size: 140% 140%, 140% 140%, 190% 190%;
  mix-blend-mode: screen;
  filter: blur(5px) saturate(140%);
  opacity: .56;
  transform: translate3d(-48%, 36%, 0) rotate(-8deg);
  animation:
    pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
    pluEnergyFlow 4.5s linear 2.3s infinite;
}

.elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "ดูหลักสูตรทั้งหมด  ↗";
  position: absolute;
  z-index: 6;
  top: 18px;
  right: 16px;
  padding: 9px 14px 9px;
  pointer-events: auto;
  cursor: pointer;
  color: #fff;
  background: rgba(55, 18, 88, .80);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(42, 12, 70, .24), inset 0 1px 0 rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(12px) saturate(135%);
  backdrop-filter: blur(12px) saturate(135%);
  font-family: "Kanit", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
  animation:
    pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
    pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate;
}

.elementor-167 .elementor-element.elementor-element-407069d:focus-visible::after {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

@keyframes pluSceneIgnite {
  0% { filter: brightness(.52) saturate(.45) contrast(1.08) blur(3px); }
  55% { filter: brightness(1.18) saturate(1.28) contrast(1.04) blur(0); }
  100% { filter: brightness(1) saturate(1.08) contrast(1.02) blur(0); }
}

@keyframes pluEnergyRush {
  0% { opacity: 0; transform: translate3d(-48%, 36%, 0) rotate(-8deg) scale(.72); }
  42% { opacity: 1; }
  72% { opacity: .82; }
  100% { opacity: .56; transform: translate3d(8%, -5%, 0) rotate(-8deg) scale(1); }
}

@keyframes pluEnergyFlow {
  0% { background-position: 0% 60%, 20% 30%, 0% 60%; }
  100% { background-position: 90% 40%, 70% 60%, 100% 40%; }
}

@keyframes pluFloatingCtaIn {
  0% { opacity: 0; transform: translate3d(18px,-12px,0) scale(.84); }
  70% { opacity: 1; transform: translate3d(-2px,2px,0) scale(1.035); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluFloatingCtaFloat {
  from { transform: translate3d(0,0,0); box-shadow: 0 12px 30px rgba(42,12,70,.24), inset 0 1px 0 rgba(255,255,255,.22); }
  to { transform: translate3d(0,-4px,0); box-shadow: 0 18px 36px rgba(42,12,70,.34), 0 0 0 5px rgba(255,205,95,.08), inset 0 1px 0 rgba(255,255,255,.28); }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both;
    animation-timeline: auto, scroll(root block);
    animation-range: normal, 0 46vh;
  }
  @keyframes pluSceneScroll {
    from { background-position: center 58%; }
    to { background-position: center 39%; }
  }
}

@media (prefers-reduced-motion: reduce) {
  html body .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both !important;
    animation-timeline: auto, scroll(root block) !important;
    animation-range: normal, 0 46vh !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::before {
    animation: pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
               pluEnergyFlow 4.5s linear 2.3s infinite !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluFloatingCtaIn .95s cubic-bezier(.16, 1, .3, 1) .78s both,
               pluFloatingCtaFloat 3.6s cubic-bezier(.32,.72,0,1) 1.9s infinite alternate !important;
  }
}.elementor-167 .elementor-element.elementor-element-407069d {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transform-origin: center center;
  box-shadow: 0 24px 64px rgba(69, 26, 112, .30), 0 0 0 1px rgba(255,255,255,.28) inset;
  animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both;
}

.elementor-167 .elementor-element.elementor-element-407069d::before {
  content: "";
  position: absolute;
  z-index: 3;
  inset: -48% -78%;
  pointer-events: none;
  background:
    linear-gradient(112deg,
      transparent 31%,
      rgba(95, 35, 160, 0) 40%,
      rgba(119, 53, 203, .28) 44%,
      rgba(174, 105, 255, .82) 47%,
      rgba(255, 204, 92, .98) 49%,
      rgba(255,255,255,.98) 50%,
      rgba(150, 70, 220, .82) 52%,
      rgba(87, 28, 149, .22) 56%,
      transparent 63%);
  background-size: 190% 190%;
  mix-blend-mode: screen;
  filter: blur(5px) saturate(145%);
  opacity: .58;
  transform: translate3d(-48%, 36%, 0) rotate(-8deg);
  animation:
    pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
    pluEnergyFlow 4.5s linear 2.3s infinite;
}

.elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: -18%;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 78%, rgba(122, 48, 196, .72), transparent 28%),
    radial-gradient(circle at 78% 18%, rgba(255, 207, 91, .36), transparent 19%),
    radial-gradient(circle at 52% 86%, rgba(255,255,255,.68), transparent 12%);
  mix-blend-mode: screen;
  opacity: .38;
  animation: pluAuraPulse 3.8s ease-in-out 1.1s infinite alternate;
}

@keyframes pluSceneIgnite {
  0% { filter: brightness(.52) saturate(.45) contrast(1.08) blur(3px); }
  55% { filter: brightness(1.18) saturate(1.28) contrast(1.04) blur(0); }
  100% { filter: brightness(1) saturate(1.08) contrast(1.02) blur(0); }
}

@keyframes pluEnergyRush {
  0% { opacity: 0; transform: translate3d(-48%, 36%, 0) rotate(-8deg) scale(.72); }
  42% { opacity: 1; }
  72% { opacity: .84; }
  100% { opacity: .58; transform: translate3d(8%, -5%, 0) rotate(-8deg) scale(1); }
}

@keyframes pluEnergyFlow {
  0% { background-position: 0% 60%; }
  100% { background-position: 100% 40%; }
}

@keyframes pluAuraPulse {
  0% { opacity: .24; filter: blur(2px) saturate(1); }
  100% { opacity: .54; filter: blur(7px) saturate(1.35); }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both;
    animation-timeline: auto, scroll(root block);
    animation-range: normal, 0 46vh;
  }

  @keyframes pluSceneScroll {
    from { background-position: center 58%; }
    to { background-position: center 39%; }
  }
}


/* Test-page override: keep the showcase visible even when the device requests reduced motion. */
@media (prefers-reduced-motion: reduce) {
  .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both !important;
    animation-timeline: auto, scroll(root block) !important;
    animation-range: normal, 0 46vh !important;
  }

  .elementor-167 .elementor-element.elementor-element-407069d::before {
    animation: pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
               pluEnergyFlow 4.5s linear 2.3s infinite !important;
  }

  .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluAuraPulse 3.8s ease-in-out 1.1s infinite alternate !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html body .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both !important;
    animation-timeline: auto, scroll(root block) !important;
    animation-range: normal, 0 46vh !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::before {
    animation: pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
               pluEnergyFlow 4.5s linear 2.3s infinite !important;
  }
  html body .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluAuraPulse 3.8s ease-in-out 1.1s infinite alternate !important;
  }
}.elementor-167 .elementor-element.elementor-element-407069d {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transform-origin: center center;
  box-shadow: 0 24px 64px rgba(69, 26, 112, .30), 0 0 0 1px rgba(255,255,255,.28) inset;
  animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both;
}

.elementor-167 .elementor-element.elementor-element-407069d::before {
  content: "";
  position: absolute;
  z-index: 3;
  inset: -48% -78%;
  pointer-events: none;
  background:
    linear-gradient(112deg,
      transparent 31%,
      rgba(95, 35, 160, 0) 40%,
      rgba(119, 53, 203, .28) 44%,
      rgba(174, 105, 255, .82) 47%,
      rgba(255, 204, 92, .98) 49%,
      rgba(255,255,255,.98) 50%,
      rgba(150, 70, 220, .82) 52%,
      rgba(87, 28, 149, .22) 56%,
      transparent 63%);
  background-size: 190% 190%;
  mix-blend-mode: screen;
  filter: blur(5px) saturate(145%);
  opacity: .58;
  transform: translate3d(-48%, 36%, 0) rotate(-8deg);
  animation:
    pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
    pluEnergyFlow 4.5s linear 2.3s infinite;
}

.elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: -18%;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 78%, rgba(122, 48, 196, .72), transparent 28%),
    radial-gradient(circle at 78% 18%, rgba(255, 207, 91, .36), transparent 19%),
    radial-gradient(circle at 52% 86%, rgba(255,255,255,.68), transparent 12%);
  mix-blend-mode: screen;
  opacity: .38;
  animation: pluAuraPulse 3.8s ease-in-out 1.1s infinite alternate;
}

@keyframes pluSceneIgnite {
  0% { filter: brightness(.52) saturate(.45) contrast(1.08) blur(3px); }
  55% { filter: brightness(1.18) saturate(1.28) contrast(1.04) blur(0); }
  100% { filter: brightness(1) saturate(1.08) contrast(1.02) blur(0); }
}

@keyframes pluEnergyRush {
  0% { opacity: 0; transform: translate3d(-48%, 36%, 0) rotate(-8deg) scale(.72); }
  42% { opacity: 1; }
  72% { opacity: .84; }
  100% { opacity: .58; transform: translate3d(8%, -5%, 0) rotate(-8deg) scale(1); }
}

@keyframes pluEnergyFlow {
  0% { background-position: 0% 60%; }
  100% { background-position: 100% 40%; }
}

@keyframes pluAuraPulse {
  0% { opacity: .24; filter: blur(2px) saturate(1); }
  100% { opacity: .54; filter: blur(7px) saturate(1.35); }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both;
    animation-timeline: auto, scroll(root block);
    animation-range: normal, 0 46vh;
  }

  @keyframes pluSceneScroll {
    from { background-position: center 58%; }
    to { background-position: center 39%; }
  }
}


/* Test-page override: keep the showcase visible even when the device requests reduced motion. */
@media (prefers-reduced-motion: reduce) {
  .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both !important;
    animation-timeline: auto, scroll(root block) !important;
    animation-range: normal, 0 46vh !important;
  }

  .elementor-167 .elementor-element.elementor-element-407069d::before {
    animation: pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
               pluEnergyFlow 4.5s linear 2.3s infinite !important;
  }

  .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: pluAuraPulse 3.8s ease-in-out 1.1s infinite alternate !important;
  }
}.elementor-167 .elementor-element.elementor-element-407069d {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transform-origin: center center;
  box-shadow: 0 24px 64px rgba(69, 26, 112, .30), 0 0 0 1px rgba(255,255,255,.28) inset;
  animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both;
}

.elementor-167 .elementor-element.elementor-element-407069d::before {
  content: "";
  position: absolute;
  z-index: 3;
  inset: -48% -78%;
  pointer-events: none;
  background:
    linear-gradient(112deg,
      transparent 31%,
      rgba(95, 35, 160, 0) 40%,
      rgba(119, 53, 203, .28) 44%,
      rgba(174, 105, 255, .82) 47%,
      rgba(255, 204, 92, .98) 49%,
      rgba(255,255,255,.98) 50%,
      rgba(150, 70, 220, .82) 52%,
      rgba(87, 28, 149, .22) 56%,
      transparent 63%);
  background-size: 190% 190%;
  mix-blend-mode: screen;
  filter: blur(5px) saturate(145%);
  opacity: .58;
  transform: translate3d(-48%, 36%, 0) rotate(-8deg);
  animation:
    pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
    pluEnergyFlow 4.5s linear 2.3s infinite;
}

.elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: -18%;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 78%, rgba(122, 48, 196, .72), transparent 28%),
    radial-gradient(circle at 78% 18%, rgba(255, 207, 91, .36), transparent 19%),
    radial-gradient(circle at 52% 86%, rgba(255,255,255,.68), transparent 12%);
  mix-blend-mode: screen;
  opacity: .38;
  animation: pluAuraPulse 3.8s ease-in-out 1.1s infinite alternate;
}

@keyframes pluSceneIgnite {
  0% { filter: brightness(.52) saturate(.45) contrast(1.08) blur(3px); }
  55% { filter: brightness(1.18) saturate(1.28) contrast(1.04) blur(0); }
  100% { filter: brightness(1) saturate(1.08) contrast(1.02) blur(0); }
}

@keyframes pluEnergyRush {
  0% { opacity: 0; transform: translate3d(-48%, 36%, 0) rotate(-8deg) scale(.72); }
  42% { opacity: 1; }
  72% { opacity: .84; }
  100% { opacity: .58; transform: translate3d(8%, -5%, 0) rotate(-8deg) scale(1); }
}

@keyframes pluEnergyFlow {
  0% { background-position: 0% 60%; }
  100% { background-position: 100% 40%; }
}

@keyframes pluAuraPulse {
  0% { opacity: .24; filter: blur(2px) saturate(1); }
  100% { opacity: .54; filter: blur(7px) saturate(1.35); }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both;
    animation-timeline: auto, scroll(root block);
    animation-range: normal, 0 46vh;
  }

  @keyframes pluSceneScroll {
    from { background-position: center 58%; }
    to { background-position: center 39%; }
  }
}
.elementor-167 .elementor-element.elementor-element-407069d {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transform-origin: center center;
  box-shadow: 0 24px 64px rgba(69, 26, 112, .30), 0 0 0 1px rgba(255,255,255,.28) inset;
  animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both;
}

.elementor-167 .elementor-element.elementor-element-407069d::before {
  content: "";
  position: absolute;
  z-index: 3;
  inset: -48% -78%;
  pointer-events: none;
  background:
    linear-gradient(112deg,
      transparent 31%,
      rgba(95, 35, 160, 0) 40%,
      rgba(119, 53, 203, .28) 44%,
      rgba(174, 105, 255, .82) 47%,
      rgba(255, 204, 92, .98) 49%,
      rgba(255,255,255,.98) 50%,
      rgba(150, 70, 220, .82) 52%,
      rgba(87, 28, 149, .22) 56%,
      transparent 63%);
  background-size: 190% 190%;
  mix-blend-mode: screen;
  filter: blur(5px) saturate(145%);
  opacity: .58;
  transform: translate3d(-48%, 36%, 0) rotate(-8deg);
  animation:
    pluEnergyRush 2.2s cubic-bezier(.16, 1, .3, 1) .12s both,
    pluEnergyFlow 4.5s linear 2.3s infinite;
}

.elementor-167 .elementor-element.elementor-element-407069d::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: -18%;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 78%, rgba(122, 48, 196, .72), transparent 28%),
    radial-gradient(circle at 78% 18%, rgba(255, 207, 91, .36), transparent 19%),
    radial-gradient(circle at 52% 86%, rgba(255,255,255,.68), transparent 12%);
  mix-blend-mode: screen;
  opacity: .38;
  animation: pluAuraPulse 3.8s ease-in-out 1.1s infinite alternate;
}

@keyframes pluSceneIgnite {
  0% { filter: brightness(.52) saturate(.45) contrast(1.08) blur(3px); }
  55% { filter: brightness(1.18) saturate(1.28) contrast(1.04) blur(0); }
  100% { filter: brightness(1) saturate(1.08) contrast(1.02) blur(0); }
}

@keyframes pluEnergyRush {
  0% { opacity: 0; transform: translate3d(-48%, 36%, 0) rotate(-8deg) scale(.72); }
  42% { opacity: 1; }
  72% { opacity: .84; }
  100% { opacity: .58; transform: translate3d(8%, -5%, 0) rotate(-8deg) scale(1); }
}

@keyframes pluEnergyFlow {
  0% { background-position: 0% 60%; }
  100% { background-position: 100% 40%; }
}

@keyframes pluAuraPulse {
  0% { opacity: .24; filter: blur(2px) saturate(1); }
  100% { opacity: .54; filter: blur(7px) saturate(1.35); }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-407069d {
    animation: pluSceneIgnite 1.35s cubic-bezier(.16, 1, .3, 1) both,
               pluSceneScroll linear both;
    animation-timeline: auto, scroll(root block);
    animation-range: normal, 0 46vh;
  }

  @keyframes pluSceneScroll {
    from { background-position: center 58%; }
    to { background-position: center 39%; }
  }
}

@media (prefers-reduced-motion: reduce) {
  .elementor-167 .elementor-element.elementor-element-407069d,
  .elementor-167 .elementor-element.elementor-element-407069d::before,
  .elementor-167 .elementor-element.elementor-element-407069d::after {
    animation: none !important;
  }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-0e424fe */.elementor-167 .elementor-element.elementor-element-0e424fe,
.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-heading-title,
.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-text-editor,
.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-text-editor p,
.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-button {
  font-family: "Kanit", sans-serif;
}

.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-heading:first-child .elementor-heading-title {
  font-weight: 500;
  letter-spacing: -.025em;
  transform-origin: left center;
  animation: pluTitleStrike 1.05s cubic-bezier(.16, 1, .3, 1) .48s both;
}

.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-text-editor,
.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-text-editor p {
  font-weight: 300;
}

.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-text-editor {
  animation: pluCopyRise .95s cubic-bezier(.22, 1, .36, 1) .82s both;
}

.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-button {
  animation: pluCtaLaunch 1s cubic-bezier(.16, 1, .3, 1) 1.08s both;
}

.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-button {
  position: relative;
  overflow: hidden;
  font-weight: 500;
  isolation: isolate;
  box-shadow: 0 13px 30px rgba(85, 35, 137, .28), 0 0 0 1px rgba(255,255,255,.22) inset;
  animation: pluCtaPulse 2.8s ease-in-out 2.1s infinite;
}

.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-button::after {
  content: "";
  position: absolute;
  inset: -45% auto -45% -55%;
  width: 34%;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.92), rgba(255,214,111,.8), transparent);
  transform: skewX(-20deg);
  animation: pluButtonShine 3.4s cubic-bezier(.22, 1, .36, 1) 1.7s infinite;
}

.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-heading:last-child {
  animation: pluGuideReveal .9s cubic-bezier(.22, 1, .36, 1) 1.28s both;
}

.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-heading:last-child .elementor-heading-title {
  font-weight: 400;
}

@keyframes pluTitleStrike {
  0% { opacity: 0; transform: translate3d(-24px, 26px, 0) scale(.92); filter: blur(7px); text-shadow: 0 0 0 rgba(136,66,204,0); }
  58% { opacity: 1; transform: translate3d(4px, -2px, 0) scale(1.025); filter: blur(0); text-shadow: 0 0 28px rgba(136,66,204,.42); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); filter: blur(0); text-shadow: 0 0 0 rgba(136,66,204,0); }
}

@keyframes pluCopyRise {
  from { opacity: 0; transform: translate3d(0, 24px, 0); filter: blur(5px); }
  to { opacity: 1; transform: translate3d(0, 0, 0); filter: blur(0); }
}

@keyframes pluCtaLaunch {
  0% { opacity: 0; transform: translate3d(0, 28px, 0) scale(.88); }
  65% { opacity: 1; transform: translate3d(0, -3px, 0) scale(1.035); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluGuideReveal {
  from { opacity: 0; transform: translate3d(16px,0,0); }
  to { opacity: 1; transform: translate3d(0,0,0); }
}

@keyframes pluCtaPulse {
  0%, 100% { box-shadow: 0 13px 30px rgba(85,35,137,.24), 0 0 0 0 rgba(145,71,215,.28); }
  50% { box-shadow: 0 18px 38px rgba(85,35,137,.38), 0 0 0 8px rgba(145,71,215,0); }
}

@keyframes pluButtonShine {
  0%, 58% { left: -55%; opacity: 0; }
  64% { opacity: .92; }
  82% { left: 125%; opacity: .82; }
  100% { left: 125%; opacity: 0; }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-heading:first-child {
    animation: pluTitleStrike 1.05s cubic-bezier(.16, 1, .3, 1) .48s both,
               pluTitleScroll linear both;
    animation-timeline: auto, scroll(root block);
    animation-range: normal, 0 45vh;
  }

  .elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-text-editor {
    animation: pluCopyRise .95s cubic-bezier(.22, 1, .36, 1) .82s both,
               pluCopyScroll linear both;
    animation-timeline: auto, scroll(root block);
    animation-range: normal, 0 45vh;
  }

  @keyframes pluTitleScroll {
    from { translate: 0 0; }
    to { translate: 0 -14px; }
  }

  @keyframes pluCopyScroll {
    from { translate: 0 0; opacity: 1; }
    to { translate: 0 -8px; opacity: .72; }
  }
}

/* White editorial content plate */
.elementor-167 .elementor-element.elementor-element-0e424fe {
  background: #ffffff !important;
  background-image: none !important;
  box-shadow: none !important;
}
.elementor-167 .elementor-element.elementor-element-0e424fe,
.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-heading-title,
.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-text-editor,
.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-text-editor p,
.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-button {
  font-family: "Kanit", sans-serif;
}

.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-heading:first-child .elementor-heading-title {
  font-weight: 500;
  letter-spacing: -.025em;
  transform-origin: left center;
  animation: pluTitleStrike 1.05s cubic-bezier(.16, 1, .3, 1) .48s both;
}

.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-text-editor,
.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-text-editor p {
  font-weight: 300;
}

.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-text-editor {
  animation: pluCopyRise .95s cubic-bezier(.22, 1, .36, 1) .82s both;
}

.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-button {
  animation: pluCtaLaunch 1s cubic-bezier(.16, 1, .3, 1) 1.08s both;
}

.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-button {
  position: relative;
  overflow: hidden;
  font-weight: 500;
  isolation: isolate;
  box-shadow: 0 13px 30px rgba(85, 35, 137, .28), 0 0 0 1px rgba(255,255,255,.22) inset;
  animation: pluCtaPulse 2.8s ease-in-out 2.1s infinite;
}

.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-button::after {
  content: "";
  position: absolute;
  inset: -45% auto -45% -55%;
  width: 34%;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.92), rgba(255,214,111,.8), transparent);
  transform: skewX(-20deg);
  animation: pluButtonShine 3.4s cubic-bezier(.22, 1, .36, 1) 1.7s infinite;
}

.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-heading:last-child {
  animation: pluGuideReveal .9s cubic-bezier(.22, 1, .36, 1) 1.28s both;
}

.elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-heading:last-child .elementor-heading-title {
  font-weight: 400;
}

@keyframes pluTitleStrike {
  0% { opacity: 0; transform: translate3d(-24px, 26px, 0) scale(.92); filter: blur(7px); text-shadow: 0 0 0 rgba(136,66,204,0); }
  58% { opacity: 1; transform: translate3d(4px, -2px, 0) scale(1.025); filter: blur(0); text-shadow: 0 0 28px rgba(136,66,204,.42); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); filter: blur(0); text-shadow: 0 0 0 rgba(136,66,204,0); }
}

@keyframes pluCopyRise {
  from { opacity: 0; transform: translate3d(0, 24px, 0); filter: blur(5px); }
  to { opacity: 1; transform: translate3d(0, 0, 0); filter: blur(0); }
}

@keyframes pluCtaLaunch {
  0% { opacity: 0; transform: translate3d(0, 28px, 0) scale(.88); }
  65% { opacity: 1; transform: translate3d(0, -3px, 0) scale(1.035); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

@keyframes pluGuideReveal {
  from { opacity: 0; transform: translate3d(16px,0,0); }
  to { opacity: 1; transform: translate3d(0,0,0); }
}

@keyframes pluCtaPulse {
  0%, 100% { box-shadow: 0 13px 30px rgba(85,35,137,.24), 0 0 0 0 rgba(145,71,215,.28); }
  50% { box-shadow: 0 18px 38px rgba(85,35,137,.38), 0 0 0 8px rgba(145,71,215,0); }
}

@keyframes pluButtonShine {
  0%, 58% { left: -55%; opacity: 0; }
  64% { opacity: .92; }
  82% { left: 125%; opacity: .82; }
  100% { left: 125%; opacity: 0; }
}

@supports (animation-timeline: scroll()) {
  .elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-heading:first-child {
    animation: pluTitleStrike 1.05s cubic-bezier(.16, 1, .3, 1) .48s both,
               pluTitleScroll linear both;
    animation-timeline: auto, scroll(root block);
    animation-range: normal, 0 45vh;
  }

  .elementor-167 .elementor-element.elementor-element-0e424fe .elementor-widget-text-editor {
    animation: pluCopyRise .95s cubic-bezier(.22, 1, .36, 1) .82s both,
               pluCopyScroll linear both;
    animation-timeline: auto, scroll(root block);
    animation-range: normal, 0 45vh;
  }

  @keyframes pluTitleScroll {
    from { translate: 0 0; }
    to { translate: 0 -14px; }
  }

  @keyframes pluCopyScroll {
    from { translate: 0 0; opacity: 1; }
    to { translate: 0 -8px; opacity: .72; }
  }
}/* End custom CSS */