: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: 'Kanit', 'Sarabun', 'Segoe UI', system-ui, sans-serif; color: var(--create-text); background: var(--create-bg-deep); } .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: 1; pointer-events: none; display: flex; justify-content: center; align-items: center; } .create-char-img { width: 100%; height: 100%; max-height: 70vh; object-fit: contain; object-position: center; opacity: 0.85; filter: 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%); } .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)); } /* ย้อนกลับ — เหมือน Main-Menu (#btn-back + .menu-btn-back-img ไม่มีกรอบ ไม่มีข้อความ) */ .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; } .create-content { width: 100%; max-width: min(94vw, 520px); margin: 0 auto; padding: clamp(56px, 11vh, 96px) 0 clamp(28px, 5vh, 48px); 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); } } .create-title { margin: 0 0 clamp(1.2rem, 3vh, 2rem); font-size: clamp(1.65rem, 4.2vw, 2.75rem); font-weight: 700; text-align: center; letter-spacing: 0.04em; line-height: 1.2; background: linear-gradient(180deg, #ffffff 0%, #f0abfc 45%, var(--create-magenta) 100%); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 0 20px rgba(188, 0, 255, 0.65)) drop-shadow(0 0 36px rgba(168, 85, 247, 0.45)); } .create-panel { width: 100%; padding: clamp(22px, 3.5vw, 36px) clamp(20px, 3.5vw, 36px) clamp(26px, 3.5vw, 40px); border-radius: 6px; background: var(--create-panel-bg); border: 2px solid rgba(168, 85, 247, 0.65); box-shadow: 0 0 0 1px rgba(34, 211, 238, 0.2), 0 0 28px rgba(168, 85, 247, 0.35), 0 0 48px rgba(34, 211, 238, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.06); backdrop-filter: blur(8px); } @media (min-width: 900px) { .create-panel { padding: clamp(28px, 2.5vw, 40px) clamp(28px, 2.8vw, 44px) clamp(32px, 2.8vw, 44px); } } .create-field { margin-bottom: clamp(1rem, 2.2vw, 1.35rem); } .create-field--players { margin-bottom: clamp(1rem, 2.5vw, 1.25rem); } .create-label { display: block; margin-bottom: 0.45rem; font-size: clamp(0.88rem, 2vw, 1.08rem); font-weight: 700; color: #fff; text-shadow: 0 0 10px rgba(168, 85, 247, 0.35); } .create-label--inline { display: inline; margin-bottom: 0; margin-right: 0.35rem; } .create-pass-sub { font-size: clamp(0.68rem, 1.8vw, 0.78rem); font-weight: 500; color: rgba(248, 250, 252, 0.72); } .create-input-shell { position: relative; border: 2px solid var(--create-cyan-dim); border-radius: 4px; background: rgba(0, 12, 28, 0.65); box-shadow: 0 0 14px rgba(34, 211, 238, 0.22), inset 0 0 20px rgba(168, 85, 247, 0.06); transition: border-color 0.2s, box-shadow 0.2s; } .create-input-shell:focus-within { border-color: var(--create-cyan); box-shadow: 0 0 20px rgba(34, 211, 238, 0.45), inset 0 0 24px rgba(34, 211, 238, 0.08); } .create-input-shell--select { padding: 0; } .create-input-shell--pin { max-width: 160px; margin-top: 0.5rem; } .create-input, .create-select { width: 100%; margin: 0; padding: clamp(0.7rem, 1.8vw, 0.95rem) clamp(1rem, 2vw, 1.15rem); border: none; background: transparent; color: #fff; font-family: inherit; font-size: clamp(0.95rem, 2vw, 1.12rem); font-weight: 600; outline: none; } .create-select { cursor: pointer; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2322d3ee'%3E%3Cpath d='M6 8L1 3h10z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.75rem center; padding-right: 2rem; } .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; } .create-mode-row { display: flex; gap: clamp(8px, 2vw, 12px); flex-wrap: wrap; } .create-mode-btn { flex: 1 1 auto; min-width: min(160px, 42%); padding: clamp(0.65rem, 1.5vw, 0.85rem) clamp(0.85rem, 2vw, 1.1rem); border-radius: 4px; border: 2px solid rgba(168, 85, 247, 0.45); background: rgba(0, 8, 24, 0.75); color: #e2e8f0; font-family: inherit; font-size: clamp(0.88rem, 1.8vw, 1.02rem); font-weight: 600; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: border-color 0.2s, box-shadow 0.2s, color 0.2s; } .create-mode-btn:hover { border-color: rgba(34, 211, 238, 0.5); } .create-mode-btn--active { border-color: var(--create-purple); color: #fff; box-shadow: 0 0 0 1px rgba(188, 0, 255, 0.5), 0 0 18px rgba(168, 85, 247, 0.55), 0 0 32px rgba(188, 0, 255, 0.25); } .create-mode-btn:focus-visible { outline: 2px solid var(--create-cyan); outline-offset: 3px; } .create-private-block { margin-bottom: clamp(0.85rem, 2.5vw, 1.1rem); padding-bottom: 0.25rem; border-bottom: 1px solid rgba(168, 85, 247, 0.2); } .create-pass-row { display: flex; flex-direction: column; align-items: flex-start; } .create-num-grid { display: flex; flex-wrap: wrap; gap: clamp(8px, 2vw, 11px); justify-content: center; margin-top: 0.35rem; } .create-num-btn { width: clamp(48px, 9vw, 64px); height: clamp(48px, 9vw, 64px); padding: 0; border-radius: 4px; border: 2px solid rgba(34, 211, 238, 0.35); background: rgba(0, 14, 32, 0.8); color: #fff; font-family: inherit; font-size: clamp(1.12rem, 2.5vw, 1.45rem); font-weight: 700; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: border-color 0.2s, box-shadow 0.2s, transform 0.15s; } .create-num-btn:hover { border-color: rgba(168, 85, 247, 0.55); } .create-num-btn--active { border-color: var(--create-purple); box-shadow: 0 0 0 1px rgba(188, 0, 255, 0.45), 0 0 16px rgba(168, 85, 247, 0.6), inset 0 0 12px rgba(188, 0, 255, 0.12); transform: scale(1.02); } .create-num-btn:focus-visible { outline: 2px solid var(--create-cyan); outline-offset: 2px; } .create-summary { margin-bottom: clamp(1.1rem, 2.5vw, 1.5rem); padding: clamp(0.75rem, 1.8vw, 1rem) clamp(1rem, 2vw, 1.25rem); text-align: center; font-size: clamp(0.88rem, 1.9vw, 1.02rem); font-weight: 600; color: rgba(248, 250, 252, 0.95); border: 2px solid var(--create-cyan-dim); border-radius: 4px; background: rgba(0, 16, 36, 0.55); box-shadow: 0 0 14px rgba(34, 211, 238, 0.18); text-shadow: 0 0 8px rgba(34, 211, 238, 0.25); } .create-confirm { position: relative; display: block; width: 100%; max-width: min(100%, 420px); margin: 0 auto; padding: 0; border: none; background: transparent; cursor: pointer; -webkit-tap-highlight-color: transparent; } .create-confirm-glow { display: block; position: absolute; inset: -2px; border-radius: 4px; border: 2px solid var(--create-cyan); box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.4), 0 0 22px rgba(34, 211, 238, 0.55), 0 0 40px rgba(34, 211, 238, 0.25); pointer-events: none; opacity: 0.95; } .create-confirm-text { position: relative; display: block; padding: clamp(0.85rem, 2vw, 1.1rem) clamp(1.75rem, 4vw, 2.25rem); font-family: inherit; font-size: clamp(1.02rem, 2.2vw, 1.2rem); font-weight: 700; color: #fff; text-shadow: 0 0 12px rgba(34, 211, 238, 0.5); } .create-confirm:hover .create-confirm-glow { box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.4), 0 0 28px rgba(34, 211, 238, 0.7), 0 0 48px rgba(34, 211, 238, 0.35); } .create-confirm:disabled { opacity: 0.45; cursor: not-allowed; } .create-confirm:disabled .create-confirm-glow { box-shadow: none; border-color: rgba(100, 116, 139, 0.5); } .create-status { margin: 0.75rem 0 0; min-height: 1.2em; text-align: center; font-size: clamp(0.85rem, 1.8vw, 0.95rem); color: #fb7185; font-weight: 500; } .create-view--hidden { display: none !important; } @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(40px, 10vw, 60px); } } @media (max-width: 380px) { .create-mode-row { flex-direction: column; } .create-mode-btn { min-width: 100%; } }