:root{--ud-yellow: #ffd048;--ud-orange: #f1ab3a;--ud-red: #f15a28;--ud-brown: #7f3e24;--ud-black: #120a0c;--ud-grey: #b3b4b5;--ud-white: #ffffff;--bg: var(--ud-black);--surface: #1c1214;--surface-2: #26191b;--line: #3a2a2c;--text: #f5efe6;--muted: var(--ud-grey);--accent: var(--ud-yellow);--danger: #ff7a59;--radius: 14px;--gutter: 16px;--bar-h: 132px;--font-head: "Kanit", system-ui, sans-serif;--font-body: "Sarabun", system-ui, sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:12px}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.55 var(--font-body);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--ud-yellow);outline-offset:2px}.app{max-width:560px;margin:0 auto;padding-bottom:calc(var(--bar-h) + 24px + env(safe-area-inset-bottom))}.hero{position:relative;text-align:center;overflow:hidden}.hero__band{height:72px;background:url(/underdog-pattern-c.jpg) center 40% / cover;-webkit-mask:linear-gradient(#000 55%,transparent);mask:linear-gradient(#000 55%,transparent)}.hero__inner{padding:4px var(--gutter) 20px;margin-top:-18px;position:relative}.hero__logo{width:156px;height:auto;display:block;margin:0 auto 6px}.hero__brand{margin:0;font:600 12px/1 var(--font-head);letter-spacing:.28em;color:var(--muted)}.hero__title{margin:10px 0 4px;font:700 34px/1.1 var(--font-head);color:var(--ud-yellow)}.hero__tagline{margin:0;font:italic 400 15px/1.4 var(--font-body);color:var(--text);opacity:.85}.hero__tagline span{color:var(--ud-orange);font-style:normal;font-weight:600}.flow{padding:0 var(--gutter);display:grid;gap:14px}.step{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 16px 20px;transition:border-color .2s}.step.is-active{border-color:color-mix(in srgb,var(--ud-yellow) 55%,var(--line))}.step__head{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}.step__num{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font:700 15px/1 var(--font-head);background:var(--surface-2);color:var(--ud-yellow);border:1.5px solid var(--ud-yellow)}.step.is-done .step__num{background:var(--ud-yellow);color:var(--ud-black)}.step__title{margin:2px 0 0;font:600 19px/1.3 var(--font-head)}.step__hint{margin:2px 0 0;font-size:14px;color:var(--muted)}.step__body{display:grid;gap:16px}.branch-list{display:grid;gap:10px}.branch{display:flex;gap:12px;align-items:flex-start;text-align:left;width:100%;padding:14px;min-height:64px;background:var(--surface-2);border:1.5px solid var(--line);border-radius:12px;transition:border-color .15s,background .15s,transform .1s}.branch:active{transform:scale(.99)}.branch.is-selected{border-color:var(--ud-yellow);background:color-mix(in srgb,var(--ud-yellow) 9%,var(--surface-2))}.branch__radio{flex:none;width:22px;height:22px;margin-top:2px;border-radius:50%;border:2px solid var(--muted);display:grid;place-items:center}.branch.is-selected .branch__radio{border-color:var(--ud-yellow)}.branch.is-selected .branch__radio:after{content:"";width:10px;height:10px;border-radius:50%;background:var(--ud-yellow)}.branch__text{display:grid;gap:2px}.branch__name{font:600 17px/1.3 var(--font-head)}.branch__meta{font-size:14px;color:var(--ud-orange)}.branch__hours{font-size:13px;color:var(--muted)}.party__row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:8px}.stepper{display:flex;align-items:center;background:var(--surface-2);border:1.5px solid var(--line);border-radius:12px}.stepper__btn{width:48px;height:48px;border:0;background:none;font-size:24px;color:var(--ud-yellow)}.stepper__btn:disabled{color:var(--line);cursor:not-allowed}.stepper__value{min-width:64px;text-align:center;font:700 22px/1 var(--font-head)}.stepper__value small{font:400 13px var(--font-body);color:var(--muted)}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{min-width:48px;min-height:44px;padding:0 12px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface-2);font:500 16px/1 var(--font-head);transition:border-color .15s,background .15s}.chip.is-selected{background:var(--ud-yellow);border-color:var(--ud-yellow);color:var(--ud-black)}.chip:disabled{opacity:.38;text-decoration:line-through;cursor:not-allowed}.chip--time{display:grid;place-items:center;gap:2px;padding:6px 4px}.chip--time small{font:400 11px/1 var(--font-body);text-decoration:none}.date-strip{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -15px;padding:2px 15px 6px;scrollbar-width:none}.date-strip::-webkit-scrollbar{display:none}.date{flex:none;width:64px;padding:10px 0;scroll-snap-align:start;display:grid;gap:2px;justify-items:center;border-radius:12px;border:1.5px solid var(--line);background:var(--surface-2)}.date:disabled{opacity:.4;cursor:not-allowed}.date__label{font-size:12px;color:var(--muted)}.date__day{font:700 22px/1.1 var(--font-head)}.date__month{font-size:12px;color:var(--muted)}.date.is-selected{background:var(--ud-yellow);border-color:var(--ud-yellow);color:var(--ud-black)}.date.is-selected .date__label,.date.is-selected .date__month{color:var(--ud-brown)}.time-groups{display:grid;gap:14px}.time-group__label{margin:0 0 8px;font:500 13px/1 var(--font-head);letter-spacing:.06em;color:var(--muted)}.time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}@media (min-width: 420px){.time-grid{grid-template-columns:repeat(5,1fr)}}.form{display:grid;gap:14px}.field{display:grid;gap:6px;position:relative}.field__label{font:500 15px/1.3 var(--font-head)}.field__req{color:var(--ud-red)}.field__opt{font:400 13px var(--font-body);color:var(--muted)}.input{width:100%;min-height:50px;padding:12px 14px;background:var(--surface-2);border:1.5px solid var(--line);border-radius:12px;font-size:16px;transition:border-color .15s}.input::placeholder{color:#8a7f80}.input:focus{outline:none;border-color:var(--ud-yellow)}.input--area{resize:vertical;min-height:92px}.has-error .input{border-color:var(--danger)}.field__error{margin:0;font-size:14px;color:var(--danger)}.counter{justify-self:end;font-size:12px;color:var(--muted)}.alert{padding:12px 14px;border-radius:10px;font-size:15px;display:flex;gap:12px;align-items:center;justify-content:space-between}.alert p{margin:0}.alert--error{background:color-mix(in srgb,var(--danger) 14%,transparent);border:1px solid color-mix(in srgb,var(--danger) 45%,transparent)}.alert--warn{background:color-mix(in srgb,var(--ud-orange) 14%,transparent);border:1px solid color-mix(in srgb,var(--ud-orange) 50%,transparent);color:var(--ud-yellow)}.btn-link{border:0;background:none;color:var(--ud-yellow);font-weight:600;text-decoration:underline;min-height:44px}.empty{margin:0;padding:14px;text-align:center;color:var(--muted);background:var(--surface-2);border-radius:10px;font-size:15px}.note{margin:10px 0 0;font-size:14px;color:var(--ud-orange)}.muted{color:var(--muted)}.fineprint{margin:6px 4px 0;font-size:13px;color:var(--muted);text-align:center}.skeleton{border-radius:12px;background:linear-gradient(90deg,var(--surface-2) 0%,#33232566 50%,var(--surface-2) 100%);background-size:200% 100%;animation:shimmer 1.2s infinite}.skeleton--branch{height:84px}.skeleton--chip{height:44px}@keyframes shimmer{to{background-position:-200% 0}}.bar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:linear-gradient(to top,var(--bg) 70%,transparent);padding:22px var(--gutter) calc(14px + env(safe-area-inset-bottom))}.bar__inner{max-width:528px;margin:0 auto;display:grid;gap:8px}.bar__summary{font-size:14px;text-align:center;min-height:20px}.bar__summary strong{color:var(--ud-yellow);font-weight:600}.bar__error{margin:0;padding:8px 12px;border-radius:8px;font-size:14px;background:color-mix(in srgb,var(--danger) 18%,var(--bg));color:#ffd2c6;text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 20px;border-radius:12px;border:0;font:600 17px/1 var(--font-head);transition:transform .1s,background .15s,opacity .15s}.btn--block{width:100%}.btn--lg{min-height:56px;font-size:19px;letter-spacing:.02em}.btn--primary{background:var(--ud-yellow);color:var(--ud-black);box-shadow:0 6px 0 var(--ud-brown)}.btn--primary:not(:disabled):active{transform:translateY(3px);box-shadow:0 3px 0 var(--ud-brown)}.btn--primary:disabled{background:#3a2f2c;color:#8a7f80;box-shadow:none;cursor:not-allowed}.btn[aria-busy=true]{background:var(--ud-orange);color:var(--ud-black);opacity:1;cursor:progress;box-shadow:0 6px 0 var(--ud-brown)}.spinner{width:20px;height:20px;border-radius:50%;border:3px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#080405c7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:end center;animation:fade .2s ease-out}@media (min-width: 560px){.modal-backdrop{place-items:center}}.modal{position:relative;width:100%;max-width:440px;overflow:hidden;background:var(--ud-black);border:1px solid #4a3a2a;border-radius:22px 22px 0 0;padding:0 22px calc(22px + env(safe-area-inset-bottom));text-align:center;box-shadow:0 -20px 60px #ffd0481f;animation:rise .35s cubic-bezier(.2,.9,.3,1.2)}@media (min-width: 560px){.modal{border-radius:22px}}.modal__band{height:64px;margin:0 -22px;background:url(/underdog-pattern-c.jpg) center 30% / cover}.modal__seal{width:76px;height:76px;margin:-38px auto 10px;border-radius:50%;background:var(--ud-yellow);border:4px solid var(--ud-black);display:grid;place-items:center;position:relative}.modal__seal svg{width:40px;height:40px;fill:none;stroke:var(--ud-black);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:draw .5s .25s forwards ease-out}.modal__kicker{margin:0;font:500 14px/1 var(--font-head);letter-spacing:.14em;text-transform:uppercase;color:var(--ud-orange)}.modal__title{margin:6px 0;font:700 34px/1.1 var(--font-head);color:var(--ud-yellow)}.modal__sub{margin:0 0 16px;font-size:15px;color:var(--text);opacity:.85}.modal__foot{margin:14px 0 0;font:600 11px/1 var(--font-head);letter-spacing:.3em;color:var(--muted)}.ticket{text-align:left;background:var(--surface);border:1px dashed #5a4630;border-radius:14px;padding:14px 16px;margin-bottom:18px}.ticket__row--id{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-bottom:12px;margin-bottom:12px;border-bottom:1px dashed #5a4630;font-size:13px;color:var(--muted)}.ticket__row--id strong{font:600 15px/1 var(--font-head);letter-spacing:.06em;color:var(--ud-yellow);word-break:break-all}.ticket__grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin:0}.ticket__grid dt{font-size:12px;color:var(--muted)}.ticket__grid dd{margin:0;font:500 15px/1.35 var(--font-head)}.span-2{grid-column:span 2}.ticket__status{margin:12px 0 0;font-size:13px;color:var(--ud-orange);display:flex;align-items:center;gap:8px}.dot{width:8px;height:8px;border-radius:50%;background:var(--ud-orange);animation:pulse 1.6s infinite}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(40px);opacity:0}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes pulse{50%{opacity:.3}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}.modal__seal svg{stroke-dashoffset:0}}.account{position:absolute;top:10px;right:var(--gutter);z-index:2;display:flex;gap:6px}.account__btn,.account__out{min-height:36px;padding:0 12px;border-radius:999px;border:1px solid rgba(18,10,12,.4);background:#120a0cd1;color:var(--text);font:500 13px var(--font-head)}.account__btn{color:var(--ud-yellow)}.login-panel{display:grid;gap:12px}.login-panel__lead{margin:0;font-size:15px;color:var(--muted)}.login-panel__email{display:grid;gap:8px}.btn--social{width:100%;min-height:50px;background:#fff;color:#1f1f1f;font:600 16px var(--font-head);border:0}.btn--social:disabled{opacity:.6}.btn--line{background:#06c755;color:#fff;min-height:48px;margin-bottom:10px;text-decoration:none}.btn--ghost{background:var(--surface-2);border:1.5px solid var(--line);color:var(--text);min-height:46px;font-size:15px}.btn--sm{min-height:38px;padding:0 14px;font-size:14px}.or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px}.or:before,.or:after{content:"";flex:1;height:1px;background:var(--line)}.signed-in{margin:0;font-size:14px;color:var(--muted)}.signed-in b{color:var(--text);font-weight:600}.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--text);cursor:pointer}.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--ud-yellow);flex:none}.fineprint--left{text-align:left;margin:0}.alert--ok{background:color-mix(in srgb,#7ddc8a 14%,transparent);border:1px solid color-mix(in srgb,#7ddc8a 45%,transparent)}.ok-text{margin:0;color:#7ddc8a;font-size:14px}.small{font-size:13px}.ticket__status--ok{color:#7ddc8a}.dot--ok{background:#7ddc8a;animation:none}.modal__call{display:inline-flex;align-items:center;min-height:44px;margin-bottom:8px}.modal--list{padding:18px 18px calc(18px + env(safe-area-inset-bottom));text-align:left;max-height:85vh;overflow:auto}.modal__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.modal__head h2{margin:0;font:600 20px var(--font-head);color:var(--ud-yellow)}.mine{list-style:none;margin:0;padding:0;display:grid;gap:10px}.mine__item{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:grid;gap:4px;font-size:15px}.mine__item.is-cancelled,.mine__item.is-completed,.mine__item.is-no_show{opacity:.6}.mine__meta{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted)}.mine__item .btn{justify-self:start;margin-top:4px}.badge{font:600 12px/1 var(--font-head);padding:5px 8px;border-radius:6px;background:var(--surface-2);color:var(--muted)}.badge--confirmed,.badge--yellow{background:color-mix(in srgb,var(--ud-yellow) 18%,transparent);color:var(--ud-yellow)}.badge--seated,.badge--red{background:color-mix(in srgb,var(--ud-red) 22%,transparent);color:#ff8a62}.line-account{width:min(100% - 32px,720px);margin:24px auto;padding:20px;border:1px solid #4a3833;border-radius:12px;background:#1b1414}.line-account>.btn{min-height:44px;width:100%}.line-profile{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px}.line-profile__avatar{border-radius:50%;object-fit:cover;flex:0 0 64px}.line-profile__body{min-width:0;overflow-wrap:anywhere}.line-profile__body h2{margin:0 0 4px;font-size:1.2rem}.line-profile__body p{margin:4px 0}.line-profile__id,.line-environment{font-size:.8rem;color:#c3b7af}.line-environment{margin-top:12px}.line-environment summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.auth-page{width:min(100% - 32px,720px);margin:24px auto 48px;padding:20px;border:1px solid #4a3833;border-radius:12px;overflow-wrap:anywhere}.auth-page h1{font-size:clamp(1.35rem,5vw,2rem);line-height:1.4;margin:0 0 16px}.auth-page p{line-height:1.7}.auth-page .btn{margin-top:16px;white-space:normal;text-align:center}.event-page{max-width:820px;margin:0 auto;padding:24px 16px 60px}.event-brand{display:block;margin-bottom:24px}.event-brand img{height:auto}.event-card{overflow:hidden;border:1px solid #443132;border-radius:24px;background:#1c1214}.event-artwork{display:block;width:100%;max-width:100%;height:auto;border-radius:12px}.event-copy{padding:28px}.event-copy h1{font-size:clamp(28px,6vw,48px);line-height:1.2;overflow-wrap:anywhere}.event-eyebrow{color:#ffd048;letter-spacing:2px;font-size:13px}.event-meta{font-weight:700}.event-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;margin:24px 0}.event-admin-row{padding:16px 0;border-top:1px solid #443132;display:flex;gap:12px;flex-wrap:wrap;align-items:center}.event-admin-row>div{flex:1;min-width:180px}@media (max-width:600px){.event-copy{padding:20px}.ad-tabs{display:flex!important;overflow-x:auto}.ad-tabs button{flex:0 0 auto;min-height:44px}}.consent{position:fixed;left:0;right:0;bottom:calc(var(--bar-h) + env(safe-area-inset-bottom));z-index:30;padding:0 var(--gutter)}.consent__inner{max-width:528px;max-height:60vh;overflow:auto;margin:0 auto;padding:14px;display:grid;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 -10px 30px #00000080}.consent__title{margin:0;font:600 16px/1.3 var(--font-head);color:var(--ud-yellow)}.consent__text{margin:0;font-size:13px;line-height:1.55;overflow-wrap:anywhere}.consent__text a{color:var(--ud-yellow)}.consent__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.consent__actions .btn{min-height:44px;padding:0 10px;font-size:15px}.consent__actions .btn--primary{grid-column:span 2;box-shadow:none}.consent__actions .btn[aria-pressed=true]{outline:2px solid var(--ud-yellow);outline-offset:1px}.consent-link{margin:0 var(--gutter);text-align:center;font-size:13px}
