Files
justice/www/html/Main-Menu/style.css
T

1137 lines
21 KiB
CSS

* { box-sizing: border-box; }
:root {
--menu-overlay-dark: rgba(1, 6, 20, 0.52);
--menu-overlay-edge: rgba(1, 6, 20, 0.8);
--menu-focus: #8cefff;
}
html {
min-height: 100%;
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
min-height: 100vh;
min-height: 100dvh;
overflow: hidden;
font-family: "Segoe UI", system-ui, sans-serif;
color: #fff;
}
.menu-bg {
position: fixed;
inset: 0;
z-index: 0;
overflow: hidden;
}
.menu-bg-img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
}
.menu-bg::after {
content: "";
position: absolute;
inset: 0;
background:
radial-gradient(circle at 50% 48%, rgba(0, 196, 255, 0.16), transparent 52%),
linear-gradient(to bottom, rgba(2, 9, 28, 0.2), rgba(2, 9, 28, 0.36));
pointer-events: none;
}
.menu-char-layer {
position: fixed;
inset: 0;
z-index: 1;
pointer-events: none;
display: flex;
justify-content: center;
align-items: center;
}
.menu-char-img {
width: 100%;
height: 100%;
max-height: 75vh;
object-fit: contain;
object-position: center;
}
.menu-vignette {
position: fixed;
inset: 0;
z-index: 2;
pointer-events: none;
background: radial-gradient(ellipse at center, transparent 20%, var(--menu-overlay-dark) 66%, var(--menu-overlay-edge) 100%);
}
.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:
max(0.5rem, env(safe-area-inset-top))
max(0.5rem, env(safe-area-inset-right))
max(0.5rem, env(safe-area-inset-bottom))
max(0.5rem, env(safe-area-inset-left));
}
.menu-btn-back {
position: absolute;
top: clamp(0.65rem, 2.2vw, 1.8rem);
left: clamp(0.65rem, 2.2vw, 1.8rem);
z-index: 10;
border: none;
background: none;
padding: 0;
cursor: pointer;
transition: transform 160ms ease, filter 160ms ease;
}
.menu-btn-back-img {
display: block;
width: clamp(46px, 5vw, 70px);
height: auto;
object-fit: contain;
filter: drop-shadow(0 0 10px rgba(0, 228, 255, 0.35));
}
.menu-logo {
position: absolute;
top: clamp(0.8rem, 4.5vh, 2.4rem);
left: 50%;
transform: translateX(-50%);
z-index: 5;
width: min(56vw, 640px);
max-width: 92%;
}
.menu-logo-img {
display: block;
width: 100%;
height: auto;
object-fit: contain;
}
.menu-buttons {
position: relative;
z-index: 5;
width: 100%;
padding-inline: clamp(0.75rem, 2vw, 1.25rem);
display: flex;
flex-direction: column;
align-items: center;
gap: clamp(10px, 1.9vh, 18px);
margin-top: clamp(7.5rem, 18vh, 15.5rem);
}
.menu-btn-create,
.menu-btn-join,
.menu-btn-exit {
border: none;
background: none;
padding: 0;
cursor: pointer;
width: clamp(265px, 33vw, 360px);
max-width: 100%;
display: flex;
align-items: center;
justify-content: center;
transition: transform 140ms ease, filter 140ms ease, opacity 140ms ease;
}
.menu-btn-exit {
margin-top: clamp(0.9rem, 3.5vh, 2.25rem);
}
.menu-btn-create-img,
.menu-btn-join-img,
.menu-btn-exit-img {
display: block;
width: 100%;
height: auto;
object-fit: contain;
}
.menu-btn-create:hover,
.menu-btn-join:hover,
.menu-btn-exit:hover,
.menu-btn-back:hover {
transform: translateY(-2px);
filter: brightness(1.05);
}
.menu-btn-create:active,
.menu-btn-join:active,
.menu-btn-exit:active,
.menu-btn-back:active {
transform: translateY(0);
}
.menu-btn-create:focus-visible,
.menu-btn-join:focus-visible,
.menu-btn-exit:focus-visible,
.menu-btn-back:focus-visible {
outline: 2px solid var(--menu-focus);
outline-offset: 3px;
border-radius: 10px;
}
@media (max-width: 1024px) {
.menu-logo {
width: min(62vw, 600px);
top: clamp(0.6rem, 3.5vh, 1.9rem);
}
.menu-buttons {
margin-top: clamp(6.25rem, 16vh, 12.5rem);
}
.menu-btn-create,
.menu-btn-join,
.menu-btn-exit {
width: min(340px, 76vw);
}
}
@media (max-width: 768px) and (orientation: portrait) {
.menu-logo {
width: min(76vw, 480px);
top: clamp(0.45rem, 3vh, 1.25rem);
}
.menu-buttons {
margin-top: clamp(5.2rem, 13vh, 9rem);
gap: 12px;
}
.menu-btn-create,
.menu-btn-join,
.menu-btn-exit {
width: min(320px, 82vw);
}
.menu-btn-exit {
margin-top: clamp(0.7rem, 2.2vh, 1.5rem);
}
.menu-char-img {
max-height: 82vh;
}
}
@media (max-width: 932px) and (orientation: landscape) {
.menu-logo {
width: clamp(180px, 34vw, 340px);
top: clamp(0.25rem, 1.8vh, 0.85rem);
}
.menu-btn-back {
top: clamp(0.25rem, 1.3vh, 0.75rem);
left: clamp(0.25rem, 1vw, 0.75rem);
}
.menu-btn-back-img {
width: clamp(30px, 5.2vw, 48px);
}
.menu-buttons {
margin-top: clamp(0.9rem, 5.5vh, 4rem);
gap: clamp(5px, 1.4vh, 12px);
}
.menu-btn-create,
.menu-btn-join,
.menu-btn-exit {
width: min(228px, 32vw);
}
.menu-btn-exit {
margin-top: clamp(0.2rem, 1.1vh, 0.85rem);
}
.menu-char-img {
max-height: 90vh;
object-position: center 44%;
}
}
@media (max-height: 400px) and (orientation: landscape) {
.menu-logo {
width: clamp(140px, 28vw, 260px);
top: 0.15rem;
}
.menu-buttons {
margin-top: clamp(0.3rem, 3.2vh, 2.5rem);
gap: clamp(3px, 1vh, 9px);
}
.menu-btn-create,
.menu-btn-join,
.menu-btn-exit {
width: min(190px, 28vw);
}
.menu-btn-exit {
margin-top: clamp(0.1rem, 0.8vh, 0.5rem);
}
}
/* Desktop exact image size (1920x1080 target) */
@media (min-width: 1025px) {
.menu-btn-back-img {
width: 112px;
height: 139px;
max-width: none;
}
.menu-buttons {
margin-top: clamp(8.2rem, 19vh, 16.5rem);
gap: clamp(12px, 2.1vh, 22px);
}
.menu-btn-create {
width: 454px;
height: 154px;
}
.menu-btn-join {
width: 453px;
height: 153px;
}
.menu-btn-exit {
width: 454px;
height: 155px;
margin-top: clamp(1rem, 3.8vh, 2.5rem);
}
.menu-btn-create-img,
.menu-btn-join-img,
.menu-btn-exit-img {
width: 100%;
height: 100%;
max-width: none;
}
}
@media (prefers-reduced-motion: reduce) {
.menu-btn-create,
.menu-btn-join,
.menu-btn-exit,
.menu-btn-back {
transition: none;
}
}
* { box-sizing: border-box; }
:root {
--menu-overlay-dark: rgba(1, 6, 20, 0.52);
--menu-overlay-edge: rgba(1, 6, 20, 0.8);
--menu-focus: #8cefff;
}
html {
min-height: 100%;
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
min-height: 100vh;
min-height: 100dvh;
overflow: hidden;
font-family: "Segoe UI", system-ui, sans-serif;
color: #fff;
}
/* ---- Background Layers ---- */
.menu-bg {
position: fixed;
inset: 0;
z-index: 0;
overflow: hidden;
}
.menu-bg-img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
}
.menu-bg::after {
content: "";
position: absolute;
inset: 0;
background:
radial-gradient(circle at 50% 48%, rgba(0, 196, 255, 0.16), transparent 52%),
linear-gradient(to bottom, rgba(2, 9, 28, 0.2), rgba(2, 9, 28, 0.36));
pointer-events: none;
}
.menu-char-layer {
position: fixed;
inset: 0;
z-index: 1;
pointer-events: none;
display: flex;
justify-content: center;
align-items: center;
}
.menu-char-img {
width: 100%;
height: 100%;
max-height: 75vh;
object-fit: contain;
object-position: center;
}
.menu-vignette {
position: fixed;
inset: 0;
z-index: 2;
pointer-events: none;
background:
radial-gradient(ellipse at center, transparent 20%, var(--menu-overlay-dark) 66%, var(--menu-overlay-edge) 100%);
}
/* ---- UI Layer ---- */
.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:
max(0.5rem, env(safe-area-inset-top))
max(0.5rem, env(safe-area-inset-right))
max(0.5rem, env(safe-area-inset-bottom))
max(0.5rem, env(safe-area-inset-left));
}
/* ---- Back button ---- */
.menu-btn-back {
position: absolute;
top: clamp(0.65rem, 2.2vw, 1.8rem);
left: clamp(0.65rem, 2.2vw, 1.8rem);
z-index: 10;
border: none;
background: none;
padding: 0;
cursor: pointer;
transition: transform 160ms ease, filter 160ms ease;
}
.menu-btn-back-img {
display: block;
width: clamp(46px, 5vw, 70px);
height: auto;
object-fit: contain;
filter: drop-shadow(0 0 10px rgba(0, 228, 255, 0.35));
}
/* ---- Logo ---- */
.menu-logo {
position: absolute;
top: clamp(0.8rem, 4.5vh, 2.4rem);
left: 50%;
transform: translateX(-50%);
z-index: 5;
width: min(56vw, 640px);
max-width: 92%;
}
.menu-logo-img {
display: block;
width: 100%;
height: auto;
object-fit: contain;
}
/* ---- Main buttons ---- */
.menu-buttons {
position: relative;
z-index: 5;
width: 100%;
padding-inline: clamp(0.75rem, 2vw, 1.25rem);
display: flex;
flex-direction: column;
align-items: center;
gap: clamp(10px, 1.9vh, 18px);
margin-top: clamp(7.5rem, 18vh, 15.5rem);
}
.menu-btn-create,
.menu-btn-join,
.menu-btn-exit {
border: none;
background: none;
padding: 0;
cursor: pointer;
width: clamp(265px, 33vw, 360px);
max-width: 100%;
display: flex;
align-items: center;
justify-content: center;
transition: transform 140ms ease, filter 140ms ease, opacity 140ms ease;
}
.menu-btn-exit {
margin-top: clamp(0.9rem, 3.5vh, 2.25rem);
}
.menu-btn-create-img,
.menu-btn-join-img,
.menu-btn-exit-img {
display: block;
width: 100%;
height: auto;
object-fit: contain;
}
.menu-btn-create:hover,
.menu-btn-join:hover,
.menu-btn-exit:hover,
.menu-btn-back:hover {
transform: translateY(-2px);
filter: brightness(1.05);
}
.menu-btn-create:active,
.menu-btn-join:active,
.menu-btn-exit:active,
.menu-btn-back:active {
transform: translateY(0);
}
.menu-btn-create:focus-visible,
.menu-btn-join:focus-visible,
.menu-btn-exit:focus-visible,
.menu-btn-back:focus-visible {
outline: 2px solid var(--menu-focus);
outline-offset: 3px;
border-radius: 10px;
}
/* ---- Tablet ---- */
@media (max-width: 1024px) {
.menu-logo {
width: min(62vw, 600px);
top: clamp(0.6rem, 3.5vh, 1.9rem);
}
.menu-buttons {
margin-top: clamp(6.25rem, 16vh, 12.5rem);
}
.menu-btn-create,
.menu-btn-join,
.menu-btn-exit {
width: min(340px, 76vw);
}
}
/* ---- Phone portrait ---- */
@media (max-width: 768px) and (orientation: portrait) {
.menu-logo {
width: min(76vw, 480px);
top: clamp(0.45rem, 3vh, 1.25rem);
}
.menu-buttons {
margin-top: clamp(5.2rem, 13vh, 9rem);
gap: 12px;
}
.menu-btn-create,
.menu-btn-join,
.menu-btn-exit {
width: min(320px, 82vw);
}
.menu-btn-exit {
margin-top: clamp(0.7rem, 2.2vh, 1.5rem);
}
.menu-char-img {
max-height: 82vh;
}
}
/* ---- Phone landscape ---- */
@media (max-width: 932px) and (orientation: landscape) {
.menu-logo {
width: clamp(180px, 34vw, 340px);
top: clamp(0.25rem, 1.8vh, 0.85rem);
}
.menu-btn-back {
top: clamp(0.25rem, 1.3vh, 0.75rem);
left: clamp(0.25rem, 1vw, 0.75rem);
}
.menu-btn-back-img {
width: clamp(30px, 5.2vw, 48px);
}
.menu-buttons {
margin-top: clamp(0.9rem, 5.5vh, 4rem);
gap: clamp(5px, 1.4vh, 12px);
}
.menu-btn-create,
.menu-btn-join,
.menu-btn-exit {
width: min(228px, 32vw);
}
.menu-btn-exit {
margin-top: clamp(0.2rem, 1.1vh, 0.85rem);
}
.menu-char-img {
max-height: 90vh;
object-position: center 44%;
}
}
/* ---- Very short landscape ---- */
@media (max-height: 400px) and (orientation: landscape) {
.menu-logo {
width: clamp(140px, 28vw, 260px);
top: 0.15rem;
}
.menu-buttons {
margin-top: clamp(0.3rem, 3.2vh, 2.5rem);
gap: clamp(3px, 1vh, 9px);
}
.menu-btn-create,
.menu-btn-join,
.menu-btn-exit {
width: min(190px, 28vw);
}
.menu-btn-exit {
margin-top: clamp(0.1rem, 0.8vh, 0.5rem);
}
}
@media (prefers-reduced-motion: reduce) {
.menu-btn-create,
.menu-btn-join,
.menu-btn-exit,
.menu-btn-back {
transition: none;
}
}
/* ---- Desktop only tuning (1920x1080 target) ---- */
@media (min-width: 1025px) {
.menu-btn-back-img {
width: auto;
max-width: none;
}
.menu-buttons {
margin-top: clamp(8.2rem, 19vh, 16.5rem);
gap: clamp(12px, 2.1vh, 22px);
}
.menu-btn-create,
.menu-btn-join,
.menu-btn-exit {
width: auto;
max-width: none;
}
.menu-btn-create-img,
.menu-btn-join-img,
.menu-btn-exit-img {
width: auto;
max-width: none;
}
.menu-btn-exit {
margin-top: clamp(1rem, 3.8vh, 2.5rem);
}
}
* { box-sizing: border-box; }
html {
min-height: 100%;
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
height: 100vh;
height: 100dvh;
overflow: 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 สีดำ ---- */
.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;
height: 100vh;
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);
overflow: hidden;
}
/* ---- ปุ่มย้อนกลับ มุมซ้ายบน ---- */
.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(64px, 6vw, 96px);
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(360px, 55vw, 1060px);
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;
justify-content: flex-end;
gap: 0;
z-index: 5;
margin-top: auto;
margin-bottom: 0;
background-color: unset;
background: unset;
width: 100%;
padding: 0 clamp(1rem, 4vw, 2rem);
padding-top: 0;
padding-bottom: 100px;
}
.menu-btn-create,
.menu-btn-join,
.menu-btn-exit {
padding: 0;
border: none;
background: none;
cursor: pointer;
width: clamp(380px, 34vw, 520px);
max-width: 100%;
transition: transform 0.15s, opacity 0.15s;
display: flex;
justify-content: center;
align-items: center;
}
.menu-btn-exit {
margin-top: clamp(0.5rem, 2vh, 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 หน้าจอเล็ก (portrait) ---- */
@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(14px, 2vw, 22px);
}
.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(12px, 1.5vw, 20px);
}
.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: 1025px) {
.menu-logo {
top: clamp(12px, 3.3333vh, 36px); /* 36px at 1080h */
height: 29.6296vh; /* 320 / 1080 * 100 */
width: auto;
max-width: none;
}
.menu-logo-img {
width: auto;
height: 100%;
}
.menu-buttons {
width: 48.1481vh; /* 520 / 1080 * 100 */
max-width: 100%;
padding-bottom: clamp(18px, 4.6296vh, 50px); /* 50px at 1080h */
gap: clamp(0px, 0.15vmin, 2px);
}
.menu-btn-create,
.menu-btn-join,
.menu-btn-exit {
width: 42.037vh; /* 454 / 1080 * 100 */
aspect-ratio: 454 / 154;
height: auto;
margin-top: 0;
}
.menu-btn-join {
margin-top: -25px;
}
.menu-btn-exit {
margin-top: 25px;
}
.menu-btn-back-img {
width: 112px;
height: 139px;
}
.menu-char-layer {
transform: translateY(10%);
justify-content: center;
align-items: center;
}
.menu-char-img {
object-position: center center;
}
}
@media (min-width: 1920px) {
.menu-logo {
top: clamp(12px, 3.3333vh, 36px); /* 36px at 1080h */
height: 29.6296vh; /* 320 / 1080 * 100 */
width: auto;
max-width: none;
}
.menu-logo-img {
width: auto;
height: 100%;
}
.menu-btn-create,
.menu-btn-join,
.menu-btn-exit {
width: 42.037vh; /* 454 / 1080 * 100 */
aspect-ratio: 454 / 154;
height: auto;
margin-top: 0;
}
.menu-buttons {
width: 48.1481vh; /* 520 / 1080 * 100 */
max-width: 100%;
padding-bottom: clamp(18px, 4.6296vh, 50px); /* 50px at 1080h */
gap: clamp(0px, 0.15vmin, 2px);
}
.menu-btn-exit {
margin-top: 25px;
}
.menu-btn-join {
margin-top: -25px;
}
.menu-btn-back-img {
width: 112px;
height: 139px;
}
.menu-char-layer {
transform: translateY(10%);
justify-content: center;
align-items: center;
}
.menu-char-img {
object-position: center center;
}
}
@media (min-width: 1400px) and (min-aspect-ratio: 18/9) {
.menu-buttons {
gap: clamp(0px, 0.1vmin, 1px);
}
}
@media (min-width: 1025px) and (max-height: 820px) {
.menu-buttons {
gap: clamp(0px, 0.1vmin, 1px);
}
}
/* ==================================================
Mobile Landscape — ทุกขนาด
================================================== */
/* ---- Landscape ทั่วไป (932px และต่ำกว่า) ---- */
@media (max-width: 932px) and (orientation: landscape) {
body {
overflow: hidden;
}
.menu-char-img {
max-height: 90vh;
object-position: center 40%;
}
.menu-logo {
top: clamp(0.2rem, 1.5vh, 1rem);
width: clamp(180px, 32vw, 340px);
}
.menu-btn-back {
top: clamp(0.3rem, 1.5vh, 1rem);
left: clamp(0.3rem, 1vw, 1rem);
}
.menu-btn-back-img {
width: clamp(30px, 5vw, 44px);
}
.menu-buttons {
margin-top: clamp(1rem, 5vh, 4rem);
gap: clamp(5px, 1.5vh, 14px);
padding: 0 1rem;
}
.menu-btn-create,
.menu-btn-join,
.menu-btn-exit {
width: min(220px, 30vw);
}
.menu-btn-exit {
margin-top: clamp(0.2rem, 1vh, 0.8rem);
}
}
/* ---- Landscape เล็กมาก (height <= 400px) ---- */
@media (max-height: 400px) and (orientation: landscape) {
.menu-char-img {
max-height: 95vh;
}
.menu-logo {
top: clamp(0.1rem, 1vh, 0.8rem);
width: clamp(140px, 28vw, 280px);
}
.menu-btn-back {
top: clamp(0.2rem, 1vh, 0.5rem);
left: clamp(0.2rem, 0.8vw, 0.5rem);
}
.menu-btn-back-img {
width: clamp(24px, 4vw, 36px);
}
.menu-buttons {
margin-top: clamp(0.5rem, 3vh, 3rem);
gap: clamp(3px, 1vh, 10px);
}
.menu-btn-create,
.menu-btn-join,
.menu-btn-exit {
width: min(190px, 26vw);
}
.menu-btn-exit {
margin-top: clamp(0.1rem, 0.8vh, 0.4rem);
}
}
/* ---- Landscape จิ๋ว (height <= 360px) ---- */
@media (max-height: 360px) and (orientation: landscape) {
.menu-logo {
top: 2px;
width: clamp(120px, 24vw, 240px);
}
.menu-buttons {
margin-top: clamp(0.3rem, 2vh, 2rem);
gap: clamp(2px, 0.8vh, 8px);
}
.menu-btn-create,
.menu-btn-join,
.menu-btn-exit {
width: min(170px, 24vw);
}
.menu-btn-exit {
margin-top: clamp(0.05rem, 0.5vh, 0.3rem);
}
.menu-btn-back-img {
width: clamp(22px, 3.5vw, 32px);
}
}