1137 lines
21 KiB
CSS
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);
|
|
}
|
|
}
|