@keyframes shimmer{0%{background-position:200% center}to{background-position:-200% center}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes eventBadgeGlow{0%,to{transform:scale(1);filter:brightness(1);box-shadow:0 2px 8px #e1241a2e}50%{transform:scale(1.06);filter:brightness(1.08);box-shadow:0 4px 14px #e1241a61}}@keyframes eventBadgeShimmer{0%{background-position:0% center}to{background-position:220% center}}@keyframes scanLine{0%{top:10px;opacity:0}10%{opacity:1}90%{opacity:1}to{top:290px;opacity:0}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes dialogOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes dialogSuccessCardIn{0%{opacity:0;transform:translateY(18px) scale(.92)}62%{opacity:1;transform:translateY(-3px) scale(1.025)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dialogSuccessIconIn{0%{opacity:0;transform:scale(.72) rotate(-8deg)}58%{opacity:1;transform:scale(1.08) rotate(2deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes dialogSuccessBgIn{0%{opacity:0;transform:scale(.35)}65%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes dialogSuccessCheckDraw{0%{stroke-dashoffset:42}to{stroke-dashoffset:0}}@keyframes dialogSuccessRing{0%{opacity:.55;transform:translate(-50%,-50%) scale(.6)}to{opacity:0;transform:translate(-50%,-50%) scale(1.6)}}@keyframes dialogSuccessSpark{0%{opacity:0;transform:translateZ(0) scale(.6)}25%{opacity:1}to{opacity:0;transform:translate3d(var(--spark-x),var(--spark-y),0) scale(1)}}@keyframes dialogSuccessTitleIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes dialogSuccessButtonShine{0%{background-position:120% center}to{background-position:-120% center}}@keyframes hourglassFlip{0%,38%{transform:rotate(0)}50%,88%{transform:rotate(180deg)}to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,#dfeaf9 25%,#f2f8ff,#dfeaf9 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:8px}.fade-in-up{animation:fadeIn .34s cubic-bezier(.23,1,.32,1) both}#qr-scanner-container video{width:100%!important;height:100%!important;object-fit:cover!important;transform:scale(1.55);transform-origin:center center;border-radius:0!important}#qr-scanner-container .qr-shaded-region{display:none!important}#qr-scanner-container canvas{display:none!important}:root{--c-primary: #2d6fd1;--c-brand: #123766;--c-brand-deep: #071f3d;--c-accent: #145fcc;--c-accent-soft: #ddebff;--c-highlight: #f2361e;--c-text: #071f3d;--c-page: #DDE8F8;--c-ocean-dark: #061B36;--c-ocean-mid: #082747;--c-ocean-blue: #0F5DB3;--c-sky-blue: #32A9FF;--c-price-blue: #047BD1;--c-red-cta: #F2361E;--c-red-cta-light: #FF5A33;--c-icon-bg: #E2EDFF;--c-muted-blue: #315F9E;--c-gold: #F9B42A;--c-white: #ffffff;--c-black: #000000;--c-background: #f5f5f5;--c-grey: #808080;--c-nobel: #b0b0b0;--c-gainsboro: #dcdcdc;--c-platinum: #e7e7e7;--c-disable: #e0e6f1;--c-red: #fe3326;--c-green: #35b288;--c-steel-blue: #4682b4;--c-deep-carmine-pink: #ef4036;--c-lily-white: #e6f6ff;--c-alabaster: #f8fbff;--space-screen-w: 14px;--space-screen-h: 13px;--space-content: 12px;--space-low: 8px;--space-low3x: 30px;--space-normal: 20px;--space-medium: 40px;--space-button: 8px;--space-container: 16px;--radius-circle: 999px;--radius-content: 8px;--radius-background: 80px;--radius-button: 8px;--icon-button: 20px;--icon-normal: 24px;--icon-high: 28px;--fs-headline5: 20px;--fs-headline6: 18px;--fs-body: 16px;--fs-subbody: 14px;--fs-caption: 14px;--fs-overline: 10px;--app-max-width: 480px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{font-family:Sarabun,Noto Sans Thai,system-ui,-apple-system,sans-serif;color:var(--c-text);background:radial-gradient(1200px 600px at 50% -10%,#d8e4f6,#d8e4f600 60%),#ccd8ee;-webkit-font-smoothing:antialiased;font-size:var(--fs-body)}#root{display:flex;justify-content:center}.app-frame{width:100%;max-width:var(--app-max-width);height:100vh;height:100dvh;background:linear-gradient(180deg,#e8f1ff,#d8e6fa 48%,#c9daf2);position:relative;display:flex;flex-direction:column;box-shadow:0 0 30px #071f3d2e;overflow:hidden}button{font-family:inherit;cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit}img{display:block}.dialog-overlay--success{animation:dialogOverlayIn .18s ease-out both}.dialog-card--success{position:relative;overflow:hidden;border:1px solid rgba(15,93,179,.18);background:radial-gradient(circle at 50% 0%,#32a9ff33,#fff0 48%),linear-gradient(180deg,#fff,#f7fbff)!important;box-shadow:0 18px 46px #061b363d,0 0 0 1px #ffffffb8 inset!important;animation:dialogSuccessCardIn .43s cubic-bezier(.2,.85,.25,1.12) both}.dialog-success-visual{position:relative;width:92px;height:84px;margin:0 auto 8px;display:grid;place-items:center}.dialog-success-ring{position:absolute;left:50%;top:50%;width:70px;height:70px;border:2px solid rgba(53,178,136,.42);border-radius:50%;animation:dialogSuccessRing .76s ease-out both}.dialog-success-icon{position:relative;z-index:1;width:72px;height:72px;overflow:visible;filter:drop-shadow(0 10px 14px rgba(53,178,136,.26));animation:dialogSuccessIconIn .52s cubic-bezier(.2,.85,.25,1.18) 90ms both}.dialog-success-icon__bg{fill:#dff8ef;stroke:var(--c-green);stroke-width:4;transform-box:fill-box;transform-origin:center;animation:dialogSuccessBgIn .48s cubic-bezier(.2,.85,.25,1.18) .1s both}.dialog-success-icon__check{fill:none;stroke:var(--c-green);stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:42;stroke-dashoffset:42;animation:dialogSuccessCheckDraw .42s cubic-bezier(.3,.8,.25,1) .36s both}.dialog-success-spark{position:absolute;left:50%;top:50%;width:8px;height:8px;border-radius:999px;background:var(--c-red-cta);box-shadow:0 0 0 4px #f2361e21;animation:dialogSuccessSpark .7s ease-out .17s both}.dialog-success-spark--one{--spark-x: -48px;--spark-y: -28px}.dialog-success-spark--two{--spark-x: 46px;--spark-y: -22px;background:#32a9ff;box-shadow:0 0 0 4px #32a9ff1f;animation-delay:.21s}.dialog-success-spark--three{--spark-x: 34px;--spark-y: 30px;background:#f9b42a;box-shadow:0 0 0 4px #f9b42a24;animation-delay:.25s}.dialog-title--success{animation:dialogSuccessTitleIn .26s ease-out .21s both}.dialog-button--success{position:relative;overflow:hidden;border-radius:16px!important;background:linear-gradient(100deg,var(--c-red-cta) 0%,var(--c-red-cta) 38%,var(--c-red-cta-light) 50%,var(--c-red-cta) 62%,var(--c-red-cta) 100%)!important;background-size:220% 100%!important;box-shadow:0 12px 24px #e8391c52,inset 0 1px #fff3;animation:dialogSuccessButtonShine 1.2s ease-out .26s 1 both;transition:transform .12s ease,box-shadow .12s ease}.dialog-button--success:active{transform:translateY(1px) scale(.99);box-shadow:0 8px 16px #e8391c3d,inset 0 1px #ffffff29}@media (prefers-reduced-motion: reduce){.dialog-overlay--success,.dialog-card--success,.dialog-success-ring,.dialog-success-icon,.dialog-success-icon__bg,.dialog-success-icon__check,.dialog-success-spark,.dialog-title--success,.dialog-button--success,.skeleton,.fade-in-up{animation:none!important}}.t-headline5{font-size:var(--fs-headline5);font-weight:600}.t-headline6{font-size:var(--fs-headline6);font-weight:600}.t-body{font-size:var(--fs-body)}.t-subbody{font-size:var(--fs-subbody)}.t-caption{font-size:var(--fs-caption)}.t-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
