/* TRACK UX: shared interaction primitives. Loaded only by the four game UIs. */
@font-face{font-family:Tajawal;src:url('/assets/fonts/tajawal-arabic-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Tajawal;src:url('/assets/fonts/tajawal-arabic-700-normal.woff2') format('woff2');font-weight:700 900;font-display:swap}
body.theban-ux{font-family:Tajawal,Tahoma,Arial,sans-serif;--ux-gold:#ebce8f;--ux-ink:#261604;line-height:1.55}
.theban-ux *,.theban-ux *::before,.theban-ux *::after{box-sizing:border-box}
.theban-ux :is(button,input,textarea,select){font:inherit}
.theban-ux :is(button,a,input,textarea,select):focus-visible{outline:3px solid var(--ux-gold);outline-offset:4px}
.theban-ux :is(button,a){-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.theban-ux :is(button,.btn,.tool-btn,.lifeline-btn){min-height:44px;transition:background-color .16s,border-color .16s,transform .16s,box-shadow .16s}
.theban-ux button:disabled{cursor:not-allowed}
.theban-ux :is(h1,h2,h3,h4,p,.team-name,.winner,.title){overflow-wrap:anywhere}
.theban-ux [hidden],.theban-ux .hidden,.theban-ux .is-hidden{display:none!important}
.theban-ux :is(.modal-dialog,.report-dialog){max-width:100%;max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}
.theban-ux :is(.close-modal,.modal-close,.close-btn){min-width:44px;min-height:44px}
.theban-ux :is(.modal,.lightbox){padding:16px;overflow:auto}
.theban-ux .ux-pending,.theban-ux [aria-busy=true]{cursor:progress}
.theban-ux .ux-pending::after{content:'';display:inline-block;width:.85em;height:.85em;margin-inline-start:8px;border:2px solid currentColor;border-inline-end-color:transparent;border-radius:50%;animation:ux-spin .8s linear infinite}
.theban-ux .ux-score-change{animation:ux-score .35s ease-out}
.theban-ux .ux-media-error{border:1px dashed currentColor;padding:16px;text-align:center;border-radius:12px;overflow-wrap:anywhere}
.theban-ux .ux-image-zoom{background:transparent;color:inherit;border:1px solid currentColor;border-radius:8px;padding:6px 14px;margin-top:10px}
.theban-ux .ux-image-dialog{border:1px solid #ebce8f80;background:#11151b;color:#fff;padding:18px;border-radius:16px;width:min(1400px,96vw);max-height:94dvh}
.theban-ux .ux-image-dialog::backdrop{background:#05070be8}
.theban-ux .ux-image-dialog img{display:block;max-width:100%;max-height:78dvh;margin:auto;object-fit:contain}
.theban-ux .ux-image-dialog button{display:block;margin:0 0 12px auto;min-width:80px;border:1px solid #ebce8f;background:#292116;color:#fff;border-radius:8px}
.theban-ux .ux-counter{font-variant-numeric:tabular-nums;font-weight:700;color:var(--ux-gold)}
.theban-ux .ux-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@keyframes ux-spin{to{transform:rotate(360deg)}}
@keyframes ux-score{50%{transform:scale(1.13);color:#ebce8f}}
@media(hover:hover){.theban-ux :is(.btn,.tool-btn,.lifeline-btn):not(:disabled):hover{transform:translateY(-2px)}}
@media(prefers-reduced-motion:reduce){.theban-ux *,.theban-ux *::before,.theban-ux *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.theban-ux .ux-counter{direction:ltr;unicode-bidi:isolate}
