467363d651
Made-with: Cursor
316 lines
6.0 KiB
CSS
316 lines
6.0 KiB
CSS
* { 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);
|
|
}
|
|
}
|