* { 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: 'Segoe UI', system-ui, sans-serif; color: #fff; } /* ---- พื้นหลัง ---- */ .menu-bg { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 0; overflow: hidden; } .menu-bg-img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; } /* ---- ตัวละคร (เหมือน Login) ---- */ .menu-char-layer { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 1; pointer-events: none; display: flex; justify-content: center; align-items: center; } .menu-char-img { width: 100%; height: 100%; max-height: 72vh; object-fit: contain; object-position: center; } /* ---- Vignette fade สีดำ (เหมือน mock) ---- */ .menu-vignette { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 2; pointer-events: none; background: radial-gradient(ellipse at center, transparent 0%, transparent 30%, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0.6) 70%, rgba(0, 0, 0, 0.85) 85%, rgba(0, 0, 0, 0.95) 100%); } /* ---- ชั้น UI ทั้งหมด ---- */ .menu-ui { position: relative; z-index: 3; min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); } /* ---- ปุ่มย้อนกลับ มุมซ้ายบน (ขนาดเดียวกับ Create Room) ---- */ .menu-btn-back { position: absolute; top: clamp(0.5rem, 2vw, 2rem); left: clamp(0.5rem, 2vw, 2rem); padding: 0; border: none; background: none; cursor: pointer; z-index: 10; } .menu-btn-back-img { display: block; width: clamp(40px, 10vw, 60px); height: auto; object-fit: contain; } /* ---- Logo กลางบน ---- */ .menu-logo { position: absolute; top: clamp(1rem, 6vh, 5rem); left: 50%; transform: translateX(-50%); z-index: 5; width: clamp(300px, 60vw, 600px); max-width: 90%; } .menu-logo-img { display: block; width: 100%; height: auto; object-fit: contain; } /* ---- ปุ่มหลัก 3 ปุ่มกลาง ---- */ .menu-buttons { display: flex; flex-direction: column; align-items: center; gap: 26px; z-index: 5; margin-top: clamp(6rem, 18vh, 15rem); width: 100%; padding: 0 clamp(1rem, 4vw, 2rem); } .menu-btn-create, .menu-btn-join, .menu-btn-exit { padding: 0; border: none; background: none; cursor: pointer; width: 315px; max-width: 100%; transition: transform 0.15s, opacity 0.15s; display: flex; justify-content: center; align-items: center; } .menu-btn-exit { margin-top: clamp(1rem, 3vw, 2rem); } .menu-btn-create:hover, .menu-btn-join:hover, .menu-btn-exit:hover { transform: scale(1.05); opacity: 0.9; } .menu-btn-create:active, .menu-btn-join:active, .menu-btn-exit:active { transform: scale(0.98); } .menu-btn-create-img, .menu-btn-join-img, .menu-btn-exit-img { display: block; width: 100%; height: auto; object-fit: contain; } /* ---- Responsive สำหรับหน้าจอเล็ก ---- */ @media (max-width: 768px) { .menu-logo { top: clamp(0.5rem, 4vh, 3rem); width: clamp(250px, 70vw, 500px); } .menu-buttons { margin-top: clamp(4rem, 15vh, 12rem); gap: clamp(20px, 2vw, 26px); } .menu-btn-create, .menu-btn-join, .menu-btn-exit { width: min(315px, 80vw); } .menu-btn-back-img { width: clamp(40px, 10vw, 60px); } } @media (max-width: 480px) { .menu-logo { top: clamp(0.25rem, 3vh, 2rem); width: clamp(200px, 80vw, 400px); } .menu-buttons { margin-top: clamp(3rem, 12vh, 10rem); gap: clamp(18px, 1.5vw, 24px); } .menu-btn-create, .menu-btn-join, .menu-btn-exit { width: min(280px, 85vw); } .menu-btn-back { top: clamp(0.25rem, 1.5vw, 1rem); left: clamp(0.25rem, 1.5vw, 1rem); } .menu-btn-back-img { width: clamp(40px, 10vw, 60px); } } /* ---- Responsive สำหรับหน้าจอใหญ่ ---- */ @media (min-width: 1920px) { .menu-logo { width: min(700px, 50vw); } .menu-btn-create, .menu-btn-join, .menu-btn-exit { width: 315px; } }