@font-face { font-family: 'NotoSansThai'; src: url('../../../FONTS/NotoSansThai-ExtraBold.ttf') format('truetype'); font-weight: 100 900; font-style: normal; font-display: swap; } .customize-popup-dialog, .customize-popup-dialog * { font-family: 'NotoSansThai', 'Kanit', system-ui, sans-serif; } .customize-popup-overlay { position: fixed; inset: 0; z-index: 10090; display: flex; align-items: center; justify-content: center; padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); background: rgba(0, 0, 0, 0.8); } .customize-popup-overlay.is-hidden, .customize-popup-overlay.hidden, #room-cz-overlay.is-hidden, #room-cz-overlay.hidden { display: none !important; } /* room-lobby ใช้ #room-cz-overlay + คลาส customize-popup (production) */ #room-cz-overlay.customize-popup-overlay { position: fixed; inset: 0; z-index: 10090; display: flex; align-items: center; justify-content: center; padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); background: rgba(0, 0, 0, 0.8); } .customize-popup-dialog { position: relative; width: min(1600px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); min-height: 0; --cc-scale: 1; --cc-layout-shift-x: calc(64px * var(--cc-scale)); } .customize-popup-content { display: flex; align-items: flex-start; justify-content: center; gap: calc(14px * var(--cc-scale)); min-height: 0; transform: translateX(var(--cc-layout-shift-x)); } .customize-popup-char-col { position: relative; width: min(500px, 36vw); min-width: 330px; height: calc(860px * var(--cc-scale)); padding-top: calc(18px * var(--cc-scale)); flex: 0 0 auto; --cc-char-preview-left: 40%; --cc-char-preview-top: calc(130px * var(--cc-scale)); --cc-char-preview-size: calc(800px * var(--cc-scale)); } .customize-popup-char-bg { position: absolute; left: var(--cc-char-preview-left); top: var(--cc-char-preview-top); transform: translateX(-50%); width: var(--cc-char-preview-size); height: var(--cc-char-preview-size); aspect-ratio: 789 / 789; object-fit: contain; display: block; z-index: 1; } .customize-popup-char-preview { position: absolute; left: var(--cc-char-preview-left); top: var(--cc-char-preview-top); transform: translateX(-50%); width: var(--cc-char-preview-size); height: var(--cc-char-preview-size); object-fit: contain; image-rendering: auto; z-index: 2; } .customize-popup-player-name { position: absolute; left: var(--cc-char-preview-left); top: calc(114px * var(--cc-scale)); transform: translateX(-50%); width: var(--cc-char-preview-size); margin: 0; text-align: center; color: #ffffff; font-size: calc(55px * var(--cc-scale)); font-weight: 700; font-family: 'NotoSansThai', 'Kanit', system-ui, sans-serif; text-shadow: 0 0 10px rgba(0, 0, 0, 0.5); letter-spacing: 0.02em; white-space: nowrap; z-index: 3; } .customize-popup-coin-wrap { position: absolute; top: calc(8px * var(--cc-scale)); left: calc(0px * var(--cc-scale)); width: calc(237px * var(--cc-scale)); height: calc(97px * var(--cc-scale)); z-index: 4; } .customize-popup-coin-bg { width: 100%; height: 100%; object-fit: contain; display: block; } .customize-popup-coin-val { position: absolute; top: 50%; left: 58%; transform: translate(-50%, -50%); color: #fff; font-size: calc(30px * var(--cc-scale)); font-weight: 700; font-family: 'NotoSansThai', 'Kanit', system-ui, sans-serif; text-shadow: 0 0 8px rgba(54, 255, 255, 0.45); white-space: nowrap; } .customize-popup-panel-shell { position: relative; width: min( 990px, calc((100dvh - 24px) * (990 / 951)), calc(100vw - 24px - min(500px, 36vw) - calc(14px * var(--cc-scale))) ); aspect-ratio: 990 / 951; max-height: calc(100dvh - 24px); min-width: 0; flex: 0 0 auto; overflow: hidden; --cc-shell-scale: var(--cc-scale); } .customize-popup-cloth-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; pointer-events: none; } .customize-popup-close { position: absolute; top: calc(78px * var(--cc-shell-scale)); right: calc(86px * var(--cc-shell-scale)); width: calc(84px * var(--cc-shell-scale)); height: calc(84px * var(--cc-shell-scale)); border: none; background: #ffffff; cursor: pointer; border-radius: 0; z-index: 3; opacity: 0; color: transparent; font-size: 0; line-height: 0; } .customize-popup-panel { position: absolute; top: calc(165px * var(--cc-shell-scale)); left: calc(118px * var(--cc-shell-scale)); right: calc(119px * var(--cc-shell-scale)); bottom: calc(39px * var(--cc-shell-scale)); min-width: 0; display: flex; flex-direction: column; z-index: 2; pointer-events: auto; } @media (max-width: 1200px) { .customize-popup-dialog { width: min(1280px, calc(100vw - 24px)); } .customize-popup-char-col { width: min(430px, 34vw); min-width: 300px; height: calc(740px * var(--cc-scale)); } .customize-popup-tabs { --customize-tab-line-shift-x: calc(12px * var(--cc-shell-scale)); --customize-tab-line-extend-left: calc(10px * var(--cc-shell-scale)); --customize-tab-right-line-shift-x: calc(-12px * var(--cc-shell-scale)); } } @media (max-height: 820px) and (min-width: 961px) { .customize-popup-content { gap: calc(10px * var(--cc-scale)); transform: translateX(calc(36px * var(--cc-scale))); } .customize-popup-char-col { width: min(420px, 32vw); min-width: 280px; height: calc(700px * var(--cc-scale)); } .customize-popup-panel-shell { width: min( 920px, calc((100dvh - 24px) * (990 / 951)), calc(100vw - 24px - min(420px, 32vw) - calc(10px * var(--cc-scale))) ); } } @media (max-width: 960px) { .customize-popup-content { flex-direction: column; align-items: center; transform: none; } .customize-popup-coin-wrap { left: calc(8px * var(--cc-scale)); } .customize-popup-char-col { width: min(520px, 84vw); min-width: 0; height: calc(760px * var(--cc-scale)); } .customize-popup-panel-shell { width: min(920px, calc(100vw - 24px)); flex: 0 0 auto; } } .customize-popup-theme-row { position: relative; display: block; height: calc(97px * var(--cc-shell-scale)); margin-bottom: calc(-3px * var(--cc-shell-scale)); } .customize-popup-theme-label { position: absolute; left: calc(43px * var(--cc-shell-scale)); top: 50%; transform: translateY(-50%); z-index: 2; width: calc(100px * var(--cc-shell-scale)); height: calc(79px * var(--cc-shell-scale)); object-fit: contain; display: block; } .customize-popup-theme-frame { position: absolute; left: 0; right: 0; top: 0; bottom: 0; height: calc(97px * var(--cc-shell-scale)); width: auto; z-index: 1; } .customize-popup-theme-frame > img { width: 100%; height: 100%; object-fit: contain; display: block; } .customize-popup-color-list { position: absolute; top: calc(16px * var(--cc-shell-scale)); right: calc(18px * var(--cc-shell-scale)); bottom: calc(16px * var(--cc-shell-scale)); left: calc(170px * var(--cc-shell-scale)); display: flex; align-items: center; gap: calc(16px * var(--cc-shell-scale)); } .customize-popup-color-btn { position: relative; display: inline-block; vertical-align: top; width: calc(46px * var(--cc-shell-scale)); height: calc(43px * var(--cc-shell-scale)); border: none; background: transparent; padding: 0; cursor: pointer; isolation: isolate; overflow: visible; } .customize-popup-color-btn > .customize-popup-color-swatch { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: contain; display: block; } .customize-popup-color-btn > .customize-popup-color-swatch--hex { border-radius: calc(8px * var(--cc-shell-scale)); border: calc(2px * var(--cc-shell-scale)) solid rgba(0, 0, 0, 0.35); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12); box-sizing: border-box; } .customize-popup-color-btn > .customize-popup-color-highlight { position: absolute !important; left: 50%; top: 50%; width: calc(78px * var(--cc-shell-scale)); height: calc(75px * var(--cc-shell-scale)); transform: translate(-50%, -50%); object-fit: contain; display: none !important; z-index: 5; pointer-events: none; } .customize-popup-color-btn.is-active > .customize-popup-color-highlight { display: block !important; } .customize-popup-color-btn.is-taken:not(.is-active) { opacity: 0.32; cursor: not-allowed; filter: grayscale(0.45); } .customize-popup-color-btn.is-taken:not(.is-active) > .customize-popup-color-swatch--hex { border-color: rgba(255, 80, 80, 0.65); } .customize-popup-tabs { display: flex; align-items: flex-end; --customize-tab-gap: calc(-5px * var(--cc-shell-scale)); --customize-tab-line-bottom: calc(4px * var(--cc-shell-scale)); /* ระยะจากล่างของเส้นใต้แท็บ */ --customize-tab-line-shift-x: calc(25px * var(--cc-shell-scale)); --customize-tab-line-extend-left: calc(21px * var(--cc-shell-scale)); --customize-tab-line-extend-right: calc(0px * var(--cc-shell-scale)); --customize-tab-left-shift-x: calc(0px * var(--cc-shell-scale)); --customize-tab-mid-shift-x: calc(0px * var(--cc-shell-scale)); --customize-tab-right-shift-x: calc(0px * var(--cc-shell-scale)); --customize-tab-mid-line-shift-x: calc(0px * var(--cc-shell-scale)); /* เส้นใต้ปุ่มกลาง(ทรงผม) ขยับซ้าย/ขวา */ --customize-tab-right-line-shift-x: calc(-28px * var(--cc-shell-scale)); /* เส้นใต้ปุ่มขวา(ชุด) ขยับซ้าย/ขวา */ gap: 0; margin: calc(6px * var(--cc-shell-scale)) 0 calc(8px * var(--cc-shell-scale)); } .customize-popup-tab-btn + .customize-popup-tab-btn { margin-left: var(--customize-tab-gap); } .customize-popup-tab-btn { position: relative; width: calc(256px * var(--cc-shell-scale)); height: calc(100px * var(--cc-shell-scale)); border: none; background: transparent; padding: 0; cursor: pointer; flex: 0 0 auto; } .customize-popup-tab-btn:first-child { transform: translateX(var(--customize-tab-left-shift-x)); } .customize-popup-tab-btn:nth-child(2) { transform: translateX(var(--customize-tab-mid-shift-x)); } .customize-popup-tab-btn:last-child { transform: translateX(var(--customize-tab-right-shift-x)); } .customize-popup-tab-img { width: 100%; height: 100%; object-fit: contain; object-position: center bottom; display: block; pointer-events: none; transition: filter .18s ease, opacity .18s ease; } /* inactive: ลดความสว่าง/ความอิ่มสี ให้ดูเป็นแท็บที่ยังไม่เลือก */ .customize-popup-tab-btn:not(.is-active) .customize-popup-tab-img { filter: saturate(0.35) brightness(0.78) contrast(0.95); opacity: 0.85; } .customize-popup-tab-btn:not(.is-active):hover .customize-popup-tab-img { filter: saturate(0.55) brightness(0.92); opacity: 0.95; } .customize-popup-tab-btn.is-active .customize-popup-tab-img { filter: none; opacity: 1; } .customize-popup-tab-btn-line { position: absolute; left: calc( (-0.5 * var(--customize-tab-gap)) + var(--customize-tab-line-shift-x) - var(--customize-tab-line-extend-left) ); bottom: var(--customize-tab-line-bottom) !important; width: calc( 100% + var(--customize-tab-gap) + var(--customize-tab-line-extend-left) + var(--customize-tab-line-extend-right) ); height: auto; display: block; pointer-events: none; } .customize-popup-tab-btn:first-child .customize-popup-tab-btn-line { left: calc(var(--customize-tab-line-shift-x) - var(--customize-tab-line-extend-left)); width: calc( 100% + (0.5 * var(--customize-tab-gap)) + var(--customize-tab-line-extend-left) + var(--customize-tab-line-extend-right) ); } .customize-popup-tab-btn:nth-child(2) .customize-popup-tab-btn-line { left: calc( (-0.5 * var(--customize-tab-gap)) + var(--customize-tab-line-shift-x) - var(--customize-tab-line-extend-left) + var(--customize-tab-mid-line-shift-x) ); } .customize-popup-tab-btn:last-child .customize-popup-tab-btn-line { left: calc( (-0.5 * var(--customize-tab-gap)) + var(--customize-tab-line-shift-x) - var(--customize-tab-line-extend-left) + var(--customize-tab-right-line-shift-x) ); width: calc( 100% + (0.5 * var(--customize-tab-gap)) + var(--customize-tab-line-extend-left) + var(--customize-tab-line-extend-right) ); } .customize-popup-tab-btn.is-active .customize-popup-tab-btn-line { display: none; } .customize-popup-items-wrap { position: relative; flex: 1 1 auto; min-height: calc(180px * var(--cc-shell-scale)); overflow: hidden; padding-right: calc(2px * var(--cc-shell-scale)); padding-left: calc(2px * var(--cc-shell-scale)); } .customize-popup-items { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(12px * var(--cc-shell-scale)); max-height: 100%; overflow-y: auto; overflow-x: hidden; scrollbar-width: none; } .customize-popup-items::-webkit-scrollbar { width: 0; height: 0; } .customize-popup-item { position: relative; width: 100%; aspect-ratio: 181 / 171; min-height: 0; isolation: isolate; overflow: hidden; } .customize-popup-item-bg { position: relative; z-index: 1; width: 100%; height: auto; aspect-ratio: 181 / 171; max-width: 100%; object-fit: contain; display: block; margin: 0 auto; } .customize-popup-item-face { position: absolute; z-index: 2; left: 50%; top: 17.5%; transform: translateX(-50%); width: 56%; height: auto; max-height: 59%; object-fit: contain; display: block; pointer-events: none; } .customize-popup-item-price { position: absolute; z-index: 3; left: 50%; bottom: -5%; transform: translateX(-50%); width: 67%; height: auto; aspect-ratio: 121 / 51; object-fit: contain; display: block; pointer-events: none; } .customize-popup-item-price-text { position: absolute; z-index: 4; left: 54%; bottom: 3%; transform: translateX(-50%); color: #ffffff; font-weight: 700; font-size: clamp(10px, calc(16px * var(--cc-shell-scale)), 18px); line-height: 1; white-space: nowrap; pointer-events: none; } .customize-popup-item:first-child .customize-popup-item-price, .customize-popup-item:first-child .customize-popup-item-price-text { display: none !important; } .customize-popup-item-highlight { position: absolute; left: 50%; top: 50%; width: 106%; height: auto; aspect-ratio: 191 / 181; transform: translate(-50%, -50%); object-fit: contain; display: none; z-index: 5; pointer-events: none; } .customize-popup-item.is-active .customize-popup-item-highlight { display: block; } .customize-popup-scroll { position: absolute; top: 0; right: calc(-17px * var(--cc-shell-scale)); bottom: 0; width: calc(14px * var(--cc-shell-scale)); pointer-events: auto; } .customize-popup-scroll.is-hidden { display: none !important; } .customize-popup-scroll-track { position: absolute; inset: 0; border-radius: 999px; background: #1b2740; border: 1px solid #22324f; box-shadow: inset 0 0 6px rgba(8, 13, 24, 0.45); pointer-events: auto; cursor: pointer; } .customize-popup-scroll-thumb { position: absolute; left: 0; top: 0; width: 100%; border-radius: 999px; background: #f04cdc; border: 1px solid #ffb8f5; box-shadow: 0 0 6px rgba(240, 76, 220, 0.55); pointer-events: auto; cursor: grab; } .customize-popup-scroll-thumb.is-dragging { cursor: grabbing; } .customize-popup-confirm { align-self: center; width: calc(351px * var(--cc-shell-scale)); height: calc(128px * var(--cc-shell-scale)); border: none; background: transparent; padding: 0; cursor: pointer; margin-top: calc(8px * var(--cc-shell-scale)); margin-bottom: calc(-42px * var(--cc-shell-scale)); } .customize-popup-confirm img { width: 100%; height: 100%; object-fit: contain; display: block; }