:root {
  --create-bg-deep: #000511;
  --create-cyan: #22d3ee;
  --create-cyan-dim: rgba(34, 211, 238, 0.45);
  --create-purple: #a855f7;
  --create-magenta: #bc00ff;
  --create-panel-bg: rgba(0, 5, 17, 0.72);
  --create-text: #f8fafc;
}

* { 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: 'NotoSansThai', 'Kanit', 'Sarabun', 'Segoe UI', system-ui, sans-serif;
  color: var(--create-text);
  background: var(--create-bg-deep);
}

@font-face {
  font-family: 'NotoSansThai';
  src: url('FONTS/NotoSansThai-Medium.ttf') format('truetype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

/* ================================================== */
/*  Background layers                                  */
/* ================================================== */
.create-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  background: radial-gradient(ellipse 80% 60% at 50% 20%, rgba(88, 28, 135, 0.25), transparent 55%),
    radial-gradient(ellipse 70% 50% at 80% 80%, rgba(34, 211, 238, 0.08), transparent 50%),
    var(--create-bg-deep);
}

.create-bg-grid {
  position: absolute;
  inset: 0;
  opacity: 0.12;
  background-image:
    linear-gradient(rgba(34, 211, 238, 0.35) 1px, transparent 1px),
    linear-gradient(90deg, rgba(168, 85, 247, 0.25) 1px, transparent 1px);
  background-size: 48px 48px;
  pointer-events: none;
}

.create-bg-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0.35;
  mix-blend-mode: screen;
}

.create-char-layer {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  display: flex;
  justify-content: center;
  align-items: center;
}

.create-char-img {
  width: 100%;
  height: 100%;
  max-height: 72vh;
  object-fit: contain;
  object-position: center;
  opacity: 0.85;
  filter: brightness(0.62) drop-shadow(0 0 40px rgba(168, 85, 247, 0.35));
}

.create-vignette {
  position: fixed;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: radial-gradient(ellipse at center, transparent 0%, rgba(0, 0, 0, 0.25) 55%, rgba(0, 0, 0, 0.82) 100%);
}

/* ================================================== */
/*  UI container                                       */
/* ================================================== */
.create-ui {
  position: relative;
  z-index: 3;
  min-height: 100vh;
  min-height: 100dvh;
  padding: max(14px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));
}

/* ================================================== */
/*  Back button                                        */
/* ================================================== */
.create-ui .menu-btn-back {
  position: fixed;
  top: max(clamp(0.5rem, 2vw, 2rem), env(safe-area-inset-top));
  left: max(clamp(0.5rem, 2vw, 2rem), env(safe-area-inset-left));
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  z-index: 20;
  -webkit-tap-highlight-color: transparent;
}

.create-ui .menu-btn-back-img {
  display: block;
  width: clamp(40px, 10vw, 60px);
  height: auto;
  object-fit: contain;
}

/* ================================================== */
/*  Content wrapper                                    */
/* ================================================== */
.create-content {
  width: 100%;
  max-width: min(94vw, 680px);
  margin: 0 auto;
  padding: clamp(34px, 7.5vh, 72px) 0 clamp(16px, 3vh, 30px);
  display: flex;
  flex-direction: column;
  align-items: center;
}

@media (min-width: 900px) {
  .create-content { max-width: min(88vw, 640px); }
}
@media (min-width: 1400px) {
  .create-content { max-width: min(82vw, 720px); }
}

@media (min-width: 1025px) {
  .create-content {
    width: min(calc(90dvh * 640 / 657), calc(100vw - 20px));
    max-width: none;
    height: 90dvh;
    min-height: 90dvh;
    max-height: 90dvh;
    aspect-ratio: 640 / 657;
    margin: 0 auto;
    padding-left: 10px;
    padding-right: 10px;
    padding-top: 0;
    padding-bottom: 0;
    justify-content: center;
    align-items: center;
  }

  .create-char-layer {
    transform: translateY(10%);
    justify-content: center;
    align-items: center;
  }

  .create-char-img {
    object-position: center center;
  }
  
  .create-ui .menu-btn-back-img {
    width: 112px;
    height: 139px;
  }
}

/* ================================================== */
/*  Title image                                        */
/* ================================================== */
.create-title-img {
  display: block;
  width: clamp(250px, 38vw, 390px);
  height: auto;
  margin-inline: auto;
  margin-bottom: clamp(0.3rem, 1vh, 0.8rem);
  object-fit: contain;
  filter: drop-shadow(0 0 16px rgba(188, 0, 255, 0.5));
}

.create-title-line {
  display: block;
  width: 72%;
  max-width: 72%;
  height: auto;
  margin: 0 auto 1.4cqh;
  opacity: 0.85;
  filter: drop-shadow(0 0 10px rgba(34, 211, 238, 0.4));
}

/* ================================================== */
/*  Panel (form container)                             */
/* ================================================== */
.create-panel {
  width: 100%;
  max-width: 640px;
  min-height: clamp(460px, 62vh, 620px);
  padding: clamp(14px, 2vh, 22px) clamp(10px, 1.4vw, 16px) clamp(14px, 2vh, 22px);
  border: none;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

/* ================================================== */
/*  Label images                                       */
/* ================================================== */
.create-label-img {
  display: block;
  height: clamp(24px, 6.2vw, 44px);
  width: auto;
  margin-bottom: 0;
  object-fit: contain;
  filter: drop-shadow(0 0 8px rgba(34, 211, 238, 0.5));
}

.create-label-img--password {
  height: clamp(24px, 6.2vw, 44px);
  margin-bottom: 0.2rem;
}

/* ================================================== */
/*  Line separator                                     */
/* ================================================== */
.create-line {
  display: block;
  width: min(100%, 640px);
  height: auto;
  margin: clamp(5px, 1vh, 10px) 0;
  opacity: 0.5;
}

.create-panel .create-line {
  display: none;
}

/* ================================================== */
/*  Fields                                             */
/* ================================================== */
.create-field {
  margin-bottom: clamp(4px, 0.8vh, 9px);
}

.create-field--players {
  margin-bottom: clamp(6px, 1vh, 10px);
}

.create-field--inline {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(8px, 1.2vw, 14px);
  white-space: nowrap;
}

.create-field--mode {
  align-items: center;
}

/* ================================================== */
/*  Input shell (textfield background image)           */
/* ================================================== */
.create-input-shell {
  position: relative;
  background: url('IMAGE/roomname-textfield.png') center / 100% 100% no-repeat;
  border: none;
  padding: 0;
  transition: filter 0.2s;
  width: 100%;
}

.create-field--room .create-input-shell {
  width: 69%;
  max-width: 69%;
}

.create-input-shell:focus-within {
  filter: brightness(1.15);
}

.create-input-shell--pin {
  background-image: url('IMAGE/password-textfield.png');
  width: 30%;
  max-width: 30%;
  margin-top: 0.15rem;
}

.create-input {
  width: 100%;
  margin: 0;
  padding: clamp(18px, 5vw, 25px) clamp(18px, 7vw, 40px);
  border: none;
  background: transparent;
  color: #fff;
  font-family: inherit;
  font-size: clamp(1rem, 1.8vw, 1.2rem);
  font-weight: 600;
  outline: none;
}

.create-input::placeholder {
  color: rgba(248, 250, 252, 0.35);
}

.create-input--pin {
  text-align: center;
  letter-spacing: 0.2em;
  font-variant-numeric: tabular-nums;
  font-family: ui-monospace, 'Courier New', monospace;
}

/* ================================================== */
/*  Mode buttons (image-based)                         */
/* ================================================== */
.create-mode-row {
  display: flex;
  gap: clamp(6px, 1.5vw, 12px);
  justify-content: flex-end;
  flex-wrap: nowrap;
  width: 63%;
  max-width: 63%;
}

.create-mode-btn {
  flex: 1 1 0;
  aspect-ratio: 338 / 143;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: transform 0.15s, filter 0.2s;
}

.create-mode-btn:hover {
  filter: brightness(1.15);
}

.create-mode-btn:active {
  transform: scale(0.96);
}

.create-mode-btn-img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 338 / 143;
  object-fit: contain;
}

/* ================================================== */
/*  Private block                                      */
/* ================================================== */
.create-private-block {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(8px, 1.2vw, 12px);
  margin: clamp(-2px, -0.3vh, 0px) 0 clamp(5px, 0.8vh, 9px) 0;
  width: 100%;
}

.create-view--hidden {
  display: none !important;
}

/* ================================================== */
/*  Player number buttons (image-based)                */
/* ================================================== */
.create-num-grid {
  display: flex;
  flex-wrap: nowrap;
  gap: clamp(4px, 1vw, 10px);
  justify-content: flex-end;
  margin-top: 0.1rem;
  width: 63%;
  max-width: 63%;
}

.create-num-btn {
  flex: 1 1 0;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: transform 0.15s, filter 0.15s;
}

.create-num-btn:hover {
  filter: brightness(1.15);
}

.create-num-btn:active {
  transform: scale(0.92);
}

.create-num-btn-img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* ================================================== */
/*  Summary (image background)                         */
/* ================================================== */
.create-summary-wrap {
  position: relative;
  margin-bottom: clamp(6px, 1vh, 10px);
  width: 86%;
  max-width: 86%;
}

.create-summary {
  position: relative;
  width: 100%;
  padding: clamp(14px, 3.6vw, 24px) clamp(16px, 2.8vw, 28px);
  text-align: center;
  font-size: clamp(0.95rem, 1.9vw, 1.1rem);
  font-weight: 700;
  color: rgba(248, 250, 252, 0.95);
  background: url('IMAGE/textbox-player.png') center / 100% 100% no-repeat;
  text-shadow: 0 0 8px rgba(34, 211, 238, 0.25);
  border: none;
}

/* ================================================== */
/*  Confirm button (image-based)                       */
/* ================================================== */
.create-confirm {
  display: block;
  width: 38%;
  max-width: 38%;
  margin: 0 auto;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: transform 0.15s, filter 0.2s;
}

.create-confirm:hover {
  filter: brightness(1.2);
}

.create-confirm:active {
  transform: scale(0.97);
}

.create-confirm:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  filter: saturate(0.3);
}

.create-confirm-img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* ================================================== */
/*  Status text                                        */
/* ================================================== */
.create-status {
  margin: 0.5rem 0 0;
  min-height: 1.2em;
  text-align: center;
  font-size: clamp(0.82rem, 1.7vw, 0.95rem);
  color: #fb7185;
  font-weight: 500;
}

/* ================================================== */
/*  Small mobile                                       */
/* ================================================== */
@media (max-width: 480px) {
  .create-ui .menu-btn-back {
    top: max(clamp(0.25rem, 1.5vw, 1rem), env(safe-area-inset-top));
    left: max(clamp(0.25rem, 1.5vw, 1rem), env(safe-area-inset-left));
  }
  .create-ui .menu-btn-back-img {
    width: clamp(36px, 10vw, 50px);
  }
}

/* ================================================== */
/*  Mobile Landscape                                   */
/* ================================================== */
@media (max-width: 932px) and (orientation: landscape) {
  body { overflow: hidden; }

  .create-char-img {
    max-height: 95vh;
    opacity: 0.65;
  }

  .create-ui {
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: max(4px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(4px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));
    -webkit-overflow-scrolling: touch;
  }

  .create-ui .menu-btn-back {
    position: absolute;
    top: max(0.3rem, env(safe-area-inset-top));
    left: max(0.3rem, env(safe-area-inset-left));
  }

  .create-ui .menu-btn-back-img {
    width: clamp(28px, 5vw, 42px);
  }

  .create-content {
    max-width: min(94vw, 720px);
    padding: clamp(20px, 4.5vh, 34px) 0 clamp(8px, 1.2vh, 12px);
  }

  .create-title-img {
    width: clamp(210px, 32vw, 340px);
    margin-bottom: clamp(0.25rem, 0.9vh, 0.65rem);
  }

  .create-panel {
    min-height: auto;
    padding: clamp(10px, 1.6vh, 14px) clamp(10px, 1.8vw, 16px) clamp(10px, 1.6vh, 14px);
  }

  .create-field--inline {
    gap: clamp(8px, 1.2vw, 12px);
  }

  .create-label-img {
    height: clamp(24px, 3vw, 34px);
  }

  .create-label-img--password {
    height: clamp(22px, 2.5vw, 30px);
    margin-bottom: 0.1rem;
  }

  .create-line {
    margin: clamp(3px, 0.8vh, 8px) 0;
  }

  .create-field {
    margin-bottom: clamp(4px, 0.8vh, 8px);
  }

  .create-input {
    padding: clamp(7px, 1.35vh, 11px) clamp(10px, 1.8vw, 14px);
    font-size: clamp(0.88rem, 1.55vw, 0.98rem);
  }

  .create-input--pin {
    padding: clamp(4px, 1vh, 8px) clamp(8px, 1.5vw, 14px);
  }

  .create-input-shell--pin {
    width: 30%;
    max-width: 30%;
  }

  .create-mode-btn-img {
    width: 100%;
  }

  .create-num-grid {
    gap: clamp(4px, 0.9vw, 8px);
    margin-top: 0.05rem;
  }

  .create-num-btn-img {
    width: 100%;
  }

  .create-private-block {
    gap: clamp(6px, 1vw, 10px);
    margin: clamp(-3px, -0.3vh, 0px) 0 clamp(5px, 0.8vh, 9px) 0;
  }

  .create-summary-wrap {
    margin-bottom: clamp(5px, 1vh, 10px);
  }

  .create-summary {
    padding: clamp(8px, 1.3vh, 12px) clamp(12px, 2vw, 18px);
    font-size: clamp(0.9rem, 1.75vw, 1.02rem);
  }

  .create-confirm {
    width: 38%;
    max-width: 38%;
  }

  .create-status {
    margin-top: 0.3rem;
    font-size: clamp(0.7rem, 1.3vw, 0.82rem);
  }
}

@media (max-height: 620px) and (orientation: landscape) {
  body { overflow: hidden; }

  .create-ui {
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: max(4px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(4px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));
    -webkit-overflow-scrolling: touch;
  }

  .create-content {
    max-width: min(94vw, 680px);
    padding: clamp(16px, 3.2vh, 24px) 0 clamp(6px, 1.1vh, 10px);
  }

  .create-title-img {
    width: clamp(220px, 33vw, 340px);
    margin-bottom: clamp(0.2rem, 0.6vh, 0.45rem);
  }

  .create-field--inline {
    gap: clamp(8px, 1.2vw, 12px);
  }

  .create-field--room .create-input-shell { width: 69%; max-width: 69%; }
  .create-mode-row,
  .create-num-grid { width: 63%; max-width: 63%; }

  .create-label-img { height: clamp(24px, 3.1vw, 34px); }
  .create-label-img--password { height: clamp(20px, 2.4vw, 28px); }

  .create-mode-btn-img { width: 100%; }
  .create-num-btn-img { width: 100%; }
  .create-input-shell--pin { width: 30%; max-width: 30%; }
  .create-confirm { width: 38%; max-width: 38%; }

  .create-summary {
    font-size: clamp(0.88rem, 1.55vw, 1rem);
    padding: clamp(8px, 1.25vh, 12px) clamp(12px, 1.8vw, 16px);
  }
}

/* ---- Landscape height <= 400px ---- */
@media (max-height: 400px) and (orientation: landscape) {
  .create-content {
    max-width: min(92vw, 720px);
    padding-top: clamp(20px, 4vh, 30px);
  }

  .create-title-img {
    width: clamp(175px, 27vw, 260px);
    margin-bottom: clamp(0.2rem, 0.8vh, 0.5rem);
  }

  .create-panel {
    padding: clamp(8px, 1.8vh, 12px) clamp(10px, 2vw, 16px) clamp(8px, 1.8vh, 12px);
  }

  .create-label-img {
    height: clamp(18px, 2.5vw, 24px);
    margin-bottom: 0;
  }

  .create-mode-btn-img { width: 100%; }

  .create-num-btn-img { width: 100%; }

  .create-summary {
    padding: clamp(7px, 1.15vh, 9px) clamp(10px, 1.5vw, 14px);
    font-size: clamp(0.84rem, 1.35vw, 0.94rem);
  }

  .create-confirm { max-width: 38%; width: 38%; }
}

/* ---- Landscape height <= 360px ---- */
@media (max-height: 360px) and (orientation: landscape) {
  .create-content {
    max-width: min(94vw, 680px);
    padding-top: clamp(20px, 4vh, 30px);
  }

  .create-title-img {
    width: clamp(150px, 23vw, 220px);
  }

  .create-panel {
    padding: clamp(4px, 1vh, 10px) clamp(8px, 1.5vw, 14px) clamp(6px, 1vh, 12px);
  }

  .create-num-btn-img { width: 100%; }

  .create-num-grid {
    gap: clamp(2px, 0.6vw, 6px);
  }

  .create-mode-btn-img { width: 100%; }

  .create-input-shell--pin { width: 30%; max-width: 30%; }

  .create-ui .menu-btn-back-img {
    width: clamp(22px, 4vw, 32px);
  }

  .create-confirm { max-width: 38%; width: 38%; }
}

@media (max-width: 700px) and (orientation: portrait) {
  .create-field--inline {
    justify-content: flex-start;
    flex-wrap: wrap;
    white-space: normal;
  }

  .create-private-block {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
}

/* ================================================== */
/*  Fullscreen no-scroll (height-first)               */
/* ================================================== */
html,
body {
  height: 100%;
  overflow: hidden;
}

body {
  min-height: 100dvh;
  max-height: 100dvh;
}

.create-ui {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100dvh;
  min-height: 100dvh;
  max-height: 100dvh;
  overflow: hidden !important;
}

.create-content {
  width: min(calc(95dvh * 1), 90vw);
  max-width: min(calc(95dvh * 1), 90vw);
  height: auto;
  min-height: 0;
  max-height: none;
  aspect-ratio: 1 / 1; /* width : height = 1.2 : 1 */
  justify-content: flex-start;
  container-type: size;
  overflow: hidden;
}

.create-title-img {
  width: 50%;
  max-width: 50%;
  margin-top: 2cqh;
  margin-bottom: 0.4cqh;
}

.create-title-line {
  --line-height: 5cqh;
  height: var(--line-height);
  width: min(calc(var(--line-height) * 1018 / 6), 100%);
  max-width: none;
  aspect-ratio: 1018 / 6;
  object-fit: contain;
  margin: -2cqh auto -2cqh;
}

.create-panel {
  width: 100%;
  max-width: 100%;
  min-height: 0;
  padding: 1.6cqh 2.4cqw;
}

.create-field {
  margin-bottom: -2cqh;
}

.create-field--room .create-input-shell {
  height: 14cqh;                         /* กำหนดสูงเอง */
  width: calc(14cqh * 659 / 140);        /* คงสัดส่วนเดิม */
  max-width: 96%;
  position: relative;
  overflow: hidden;
}

.create-field--room .create-input {
  position: absolute;
  inset: 18% 8% 18% 8%;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0;
  font-size: 2.7cqh;
  line-height: 1.1;
}

.create-field--mode {
  margin-bottom: -3cqh; /* ใกล้ขึ้น/ห่างขึ้น ปรับค่านี้ */
}

.create-mode-row {
  width: 82%;
  max-width: 82%;
  gap: 0;
}

.create-mode-btn + .create-mode-btn {
  margin-left: -0.4cqh;
}

.create-mode-btn {
  flex: 0 0 auto;
  height: 14cqh;                           /* match roomname-textfield height */
  width: calc(14cqh * 338 / 143);          /* keep mode button ratio */
}

.create-num-grid {
  --num-btn-gap: 0.8cqh;                   /* ช่องว่างปกติ (ห้ามติดลบ) */
  --num-btn-overlap: -5cqh;                 /* ซ้อนทับได้ ใส่ค่าติดลบ เช่น -1.2cqh */
  gap: var(--num-btn-gap);
  width: 82%;
  max-width: 82%;
}

.create-num-btn {
  --num-btn-height: 13.1cqh;                  /* ปรับความสูงปุ่มเลข 1-6 ที่นี่ */
  flex: 0 0 auto;
  height: var(--num-btn-height);
  width: calc(var(--num-btn-height) * 151 / 137);
  aspect-ratio: 151 / 137;
}

.create-num-btn + .create-num-btn {
  margin-left: var(--num-btn-overlap);
}

.create-num-btn-img {
  width: 100%;
  height: 100%;
  aspect-ratio: 151 / 137;
  object-fit: contain;
}

.create-input-shell--pin {
  --pin-field-height: 10.5cqh;                  /* ปรับความสูงช่องรหัสที่นี่ */
  position: relative;
  overflow: hidden;
  height: var(--pin-field-height);
  width: calc(var(--pin-field-height) * 242 / 110);
  max-width: 38%;
  aspect-ratio: 242 / 110;
  background-size: 100% 100%;
}

.create-input-shell--pin .create-input--pin {
  position: absolute;
  inset: 18% 10% 18% 10%;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0;
  font-family: 'NotoSansThai', 'Kanit', 'Sarabun', sans-serif;
  font-size: 2.5cqh;
  line-height: 1;
  letter-spacing: 0.16em;
}

.create-summary-wrap {
  --summary-field-height: 20cqh;              /* ปรับความสูง textbox-player ที่นี่ */
  width: calc(var(--summary-field-height) * 947 / 200);
  max-width: 100%;
  height: var(--summary-field-height);
  margin-bottom: -1cqh;
}

.create-confirm {
  --confirm-btn-height: 15cqh;              /* ปรับความสูง btn-confirm ที่นี่ */
  height: var(--confirm-btn-height);
  width: calc(var(--confirm-btn-height) * 404 / 141);
  max-width: 46%;
  aspect-ratio: 404 / 141;
  display: block;
  margin: 0 auto;
}

.create-confirm-img {
  width: 100%;
  height: 100%;
  aspect-ratio: 404 / 141;
  object-fit: contain;
}

.create-label-img {
  height: 4.8cqh;
}

.create-field--room .create-label-img {
  height: 10cqh;
  width: calc(10cqh * 202 / 109);
  max-width: 32%;
  aspect-ratio: 202 / 109;
  object-fit: contain;
  transform: translateX(3cqw);
}
.create-field--mode .create-label-img {
  height: 9.5cqh;                        /* ใช้ความสูงเดียวกัน */
  width: calc(9.5cqh * 170 / 99);       /* ใช้ความกว้างอ้างอิงเดียวกัน */
  aspect-ratio: 170 / 99;
  object-fit: contain;
  object-position: right center;     
  transform: translateX(12.5cqw);    /* ชิดขวาในกล่อง */
}

.create-field--players .create-label-img {
  --players-label-height: 9.5cqh;         /* ปรับความสูง txt-players ที่นี่ */
  --players-label-offset-x: 2cqw;         /* ปรับตำแหน่งให้ตรงกับ txt-roomname */
  height: var(--players-label-height);
  width: calc(var(--players-label-height) * 295 / 99);
  max-width: 44%;
  aspect-ratio: 295 / 99;
  object-fit: contain;
  object-position: right center;
  transform: translateX(var(--players-label-offset-x));
}

.create-private-block {
  margin-bottom: -1cqh;   /* เพิ่ม = ห่างขึ้น, ลด/ติดลบ = ชิดขึ้น */
}

.create-field--players {
  margin-bottom: 0cqh;   /* เพิ่ม = ห่างขึ้น, ลด/ติดลบ = ชิดขึ้น */
}

.create-label-img--password {
  --password-label-height: 10cqh;             /* ปรับความสูง txt-password ที่นี่ */
  height: var(--password-label-height);
  width: calc(var(--password-label-height) * 224 / 110);
  max-width: 34%;
  aspect-ratio: 224 / 110;
  object-fit: contain;
  transform: translate(4cqw, 0.4cqh);
}

.create-input {
  font-family: 'NotoSansThai', 'Kanit', 'Sarabun', sans-serif;
  font-size: 2.8cqh;
  padding: 2.1cqh 3.8cqw;
}

.create-summary {
  --summary-font-size: 4cqh;               /* ปรับขนาดฟอนต์ใน textbox-player ที่นี่ */
  position: relative;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  font-size: var(--summary-font-size);
  padding: 0 3.2cqw;
  display: flex;
  align-items: center;
  justify-content: center;
  background-size: 100% 100%;
  aspect-ratio: 947 / 200;
}

.create-status {
  font-family: 'NotoSansThai', sans-serif;
  font-size: 2cqh;
  margin-top: 0.5cqh;
}

/* ================================================== */
/*  Animations — entrance (ตอนขึ้น) / press (ตอนกด)   */
/*               transitions (ตอนเปลี่ยน)              */
/* ================================================== */
@keyframes cr-rise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes cr-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes cr-char-in { from { opacity: 0; transform: translateY(4%) scale(1.05); } to { opacity: .85; transform: translateY(0) scale(1); } }
@keyframes cr-reveal { from { opacity: 0; transform: translateY(-10px) scaleY(.85); } to { opacity: 1; transform: translateY(0) scaleY(1); } }
@keyframes cr-pop { 0% { transform: scale(1); } 45% { transform: scale(1.13); } 100% { transform: scale(1); } }
@keyframes cr-bump { 0% { transform: scale(1); } 35% { transform: scale(1.05); filter: brightness(1.3); } 100% { transform: scale(1); } }

/* press feedback — เปิดเสมอ (เร็ว ไม่เวียนหัว) */
.create-ui .menu-btn-back { transition: transform .12s ease, filter .2s; }
.create-ui .menu-btn-back:hover { filter: brightness(1.15); }
.create-ui .menu-btn-back:active { transform: scale(.88); }
.create-confirm:active:not(:disabled) { transform: scale(.94); }
.create-mode-btn:active { transform: scale(.93); }
.create-num-btn:active { transform: scale(.9); }

@media (prefers-reduced-motion: no-preference) {
  /* --- entrance: โผล่ทีละชิ้นแบบไล่ลำดับ --- */
  .create-char-img { animation: cr-char-in 1s ease both; }
  .create-ui .menu-btn-back { animation: cr-fade .6s ease .08s backwards; }
  .create-title-img { animation: cr-rise .55s cubic-bezier(.2,.85,.25,1) .05s both; }
  .create-title-line { animation: cr-rise .55s cubic-bezier(.2,.85,.25,1) .13s both; }
  .create-field--room { animation: cr-rise .55s cubic-bezier(.2,.85,.25,1) .2s both; }
  .create-field--mode { animation: cr-rise .55s cubic-bezier(.2,.85,.25,1) .28s both; }
  .create-field--players { animation: cr-rise .55s cubic-bezier(.2,.85,.25,1) .36s both; }
  .create-summary-wrap { animation: cr-rise .55s cubic-bezier(.2,.85,.25,1) .44s both; }
  /* confirm ใช้ fade (opacity) เท่านั้น → :active scale ยังทำงาน + ไม่ทับสถานะ disabled */
  .create-confirm { animation: cr-fade .6s ease .52s backwards; }

  /* --- transitions: ตอนเปลี่ยนค่า/สลับ --- */
  .create-private-block:not(.create-view--hidden) { animation: cr-reveal .34s cubic-bezier(.2,.85,.25,1); transform-origin: top; }
  .create-mode-btn--active { animation: cr-pop .32s ease; }
  .create-num-btn[aria-pressed="true"] { animation: cr-pop .32s ease; }
  .create-summary.is-bump { animation: cr-bump .42s ease; }
}

