* { box-sizing: border-box; } html { min-height: 100%; -webkit-text-size-adjust: 100%; } body { margin: 0; min-height: 100vh; min-height: 100dvh; overflow-x: hidden; font-family: 'Kanit', 'Sarabun', 'Segoe UI', system-ui, sans-serif; color: #fff; background: #030712; } .qb-bg { position: fixed; inset: 0; z-index: 0; } .qb-bg-img { width: 100%; height: 100%; object-fit: cover; object-position: center; } .qb-vignette { position: fixed; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(ellipse at 50% 25%, transparent 15%, rgba(0, 0, 0, 0.4) 100%); } .qb-ui { position: relative; z-index: 2; min-height: 100vh; min-height: 100dvh; padding: max(10px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); display: flex; flex-direction: column; } .qb-top { display: flex; align-items: center; justify-content: flex-start; gap: 8px; margin-bottom: 12px; } .qb-top-fill { flex: 1; min-width: 8px; pointer-events: none; } .qb-icon-btn { padding: 0; border: none; background: transparent; cursor: pointer; -webkit-tap-highlight-color: transparent; } .qb-icon-btn img { display: block; height: clamp(38px, 10vw, 52px); width: auto; image-rendering: -webkit-optimize-contrast; } /* ย้อนกลับ — สเกลตามจอใหญ่ (ใกล้เคียง Main-Menu .menu-btn-back-img) */ .qb-icon-btn--back img { width: clamp(48px, 6.5vw, 76px); height: auto; max-height: clamp(56px, 8.5vw, 92px); object-fit: contain; } .qb-profile-panel { flex-shrink: 0; } .qb-avatar-frame { width: clamp(60px, 14vw, 92px); height: clamp(60px, 14vw, 92px); padding: 3px; box-sizing: border-box; border: 2px solid rgba(34, 211, 238, 0.95); border-radius: 4px; background: rgba(3, 7, 18, 0.65); box-shadow: 0 0 16px rgba(34, 211, 238, 0.55), 0 0 28px rgba(168, 85, 247, 0.22), inset 0 0 12px rgba(34, 211, 238, 0.12); display: flex; align-items: center; justify-content: center; overflow: hidden; } .qb-avatar-wrap { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; overflow: hidden; border-radius: 2px; } .qb-avatar-img.lobby-avatar-mask { width: 151%; height: 212%; /* object-fit / object-position: match Main-Lobby .lobby-avatar-mask */ transform: translate(0, 16px); display: block; } .qb-main { flex: 1; display: flex; flex-direction: column; align-items: center; min-height: 0; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(34, 211, 238, 0.45) rgba(0, 20, 40, 0.5); } .qb-main::-webkit-scrollbar { width: 8px; } .qb-main::-webkit-scrollbar-track { background: url(/Quiz-Battle/IMAGE/q-scroll-bg.png) center / 100% 100% no-repeat; border-radius: 4px; } .qb-main::-webkit-scrollbar-thumb { background: url(/Quiz-Battle/IMAGE/q-scroll-bar.png) center / 100% 100% no-repeat; border-radius: 4px; } .qb-room-banner { width: 100%; max-width: min(94vw, 640px); margin: 0 auto clamp(10px, 1.5vh, 18px); flex-shrink: 0; } @media (min-width: 1200px) { .qb-room-banner { max-width: min(92vw, 760px); } } @media (min-width: 1600px) { .qb-room-banner { max-width: min(88vw, 880px); } } .qb-room-banner img { display: block; width: 100%; height: auto; object-fit: contain; filter: drop-shadow(0 8px 24px rgba(0, 0, 0, 0.35)); } .qb-grid { width: 100%; max-width: min(96vw, 1040px); display: grid; grid-template-columns: repeat(5, 1fr); gap: clamp(8px, 1.2vw, 18px); padding: clamp(8px, 1.2vw, 14px) clamp(6px, 1vw, 12px) clamp(14px, 2vh, 24px); } @media (min-width: 1200px) { .qb-grid { max-width: min(94vw, 1180px); gap: clamp(10px, 1vw, 20px); } } @media (min-width: 1600px) { .qb-grid { max-width: min(92vw, 1320px); gap: clamp(12px, 0.9vw, 22px); } } .qb-card { position: relative; padding: 0; border: none; background: transparent; border-radius: 8px; cursor: pointer; overflow: hidden; -webkit-tap-highlight-color: transparent; transition: box-shadow 0.2s, transform 0.15s; } .qb-card:hover, .qb-card:focus-visible { transform: translateY(-2px); } .qb-card:focus-visible { outline: 2px solid #22d3ee; outline-offset: 2px; } .qb-card--selected { box-shadow: 0 0 0 2px rgba(168, 85, 247, 0.9), 0 0 18px rgba(34, 211, 238, 0.45); } .qb-card-room { display: block; width: 100%; height: auto; vertical-align: middle; } .qb-card-tag { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: auto; pointer-events: none; } .qb-toast { text-align: center; font-size: clamp(0.88rem, 1.5vw, 1.05rem); color: rgba(248, 250, 252, 0.88); min-height: 1.2em; margin-top: 4px; flex-shrink: 0; padding: 0 8px 4px; } .qb-bottom { flex-shrink: 0; display: flex; justify-content: center; align-items: center; padding: 10px 12px max(12px, env(safe-area-inset-bottom)); z-index: 4; } .qb-start-btn { padding: 0; border: none; background: transparent; cursor: pointer; -webkit-tap-highlight-color: transparent; filter: drop-shadow(0 4px 20px rgba(34, 211, 238, 0.35)); transition: transform 0.15s, filter 0.2s; } .qb-start-btn:hover, .qb-start-btn:focus-visible { transform: scale(1.04); filter: drop-shadow(0 6px 28px rgba(168, 85, 247, 0.45)); } .qb-start-btn:focus-visible { outline: 2px solid #22d3ee; outline-offset: 4px; } .qb-start-btn:active { transform: scale(0.98); } .qb-start-btn img { display: block; width: auto; height: clamp(54px, 9vw, 96px); max-height: min(22vh, 120px); max-width: min(94vw, 440px); object-fit: contain; } @media (min-width: 1200px) { .qb-start-btn img { height: clamp(64px, 7.5vw, 104px); max-height: 128px; max-width: min(90vw, 520px); } } @media (max-width: 720px) { .qb-grid { grid-template-columns: repeat(3, 1fr); } } @media (max-width: 400px) { .qb-grid { grid-template-columns: repeat(2, 1fr); } }