* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; } :root { --cp-space-bg: #2d165d; --cp-space-panel: #4d236d; --cp-space-muted: #8c76d2; --cp-space-card-top: 125px; } html, body { margin: 0; width: 100%; min-height: 100%; overflow-x: hidden; background: var(--cp-space-bg); color: #fff; font-family: 'Source Han Sans SC', 'Noto Sans CJK SC', Arial, 'Helvetica Neue', Helvetica, sans-serif; } button { border: 0; padding: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; } .app-shell { width: 100%; max-width: 768px; min-height: 100vh; margin: 0 auto; background: var(--cp-space-bg); } .cp-space { position: relative; width: min(100vw, 768px); min-height: 100vh; margin: 0 auto; overflow: hidden; background: var(--cp-space-bg); } .cp-space::before, .cp-space::after { position: absolute; inset: 0; pointer-events: none; content: ''; } .cp-space::before { z-index: 0; background: url('./assets/space-bg.svg') center top / 100% auto repeat-y; } .cp-space::after { display: none; } .top-nav { position: relative; z-index: 2; height: 44px; } .back-button { position: absolute; left: 16px; top: 10px; width: 24px; height: 24px; } .back-button span { position: absolute; left: 8px; top: 5px; width: 10px; height: 10px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(45deg); } .top-nav h1 { position: absolute; left: 50%; top: 12px; margin: 0; color: #fff; font-size: 18px; font-weight: 500; line-height: 20px; letter-spacing: 0; text-align: center; transform: translateX(-50%); } .tab-bar { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3, 1fr); align-items: center; width: calc(100% - 32px); max-width: 343px; height: 47px; margin: 16px auto 0; padding: 0; border-radius: 27.5px; background: var(--cp-space-panel); } .tab-button { position: relative; height: 47px; color: var(--cp-space-muted); font-size: 18px; font-weight: 500; line-height: 18px; letter-spacing: 0; text-align: center; } .tab-button span { position: relative; z-index: 1; } .tab-button.is-active { color: #fff; } .tab-button.is-active::before { position: absolute; left: 50%; top: 0; width: min(130px, calc(100% + 16px)); height: 47px; background: url('./assets/tab-active.png') center / 100% 100% no-repeat; content: ''; transform: translateX(-50%); } .content-panel { position: relative; z-index: 2; width: 100%; padding: 18px 10px 40px; } .relation-list { display: grid; gap: 10px; justify-items: center; width: 100%; } .relation-card { position: relative; width: min(355px, calc(100vw - 20px)); border-radius: 10px; } .relation-card img { display: block; width: 100%; height: auto; user-select: none; -webkit-user-drag: none; } .cancel-hotspot { position: absolute; left: 35%; bottom: 10%; width: 30%; height: 18%; border-radius: 999px; } .empty-state { width: min(355px, calc(100vw - 20px)); margin: 0 auto; padding: 56px 18px; border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 12px; background: rgba(77, 35, 109, 0.68); color: rgba(255, 255, 255, 0.72); font-size: 14px; line-height: 20px; text-align: center; } [dir='rtl'] .back-button span { transform: rotate(225deg); } @media (min-width: 769px) { .cp-space { width: 768px; } .content-panel { padding-right: 206px; padding-left: 206px; } }