@import 'tailwindcss'; @import '../styles/noty.css'; @import 'noty/lib/noty.css'; @import 'remixicon/fonts/remixicon.css'; @import '../styles/flags.css'; @import '../styles/fonts.css'; /* 마지노선인듯 화면 24px -> 나나 32 손등 18px -> 나나 24 */ .is-loading { animation: rotation 2s linear infinite; display: inline-block; } body { margin: 0; } :root { --status-online: #67c23a; --status-joinme: #00b8ff; --status-askme: #ff9500; --status-busy: #ff2c2c; --status-active: #f4e05e; --status-offline: #909399; --status-offline-alt: #808080; --platform-pc: #0078d4; --platform-quest: #3ddc84; --platform-ios: #8e8e93; --vr-bg: #18181b; --vr-bg-surface: #27272a; --vr-text: #e4e4e7; --vr-text-secondary: #a1a1aa; --vr-text-muted: #71717a; --vr-text-name: #d4d4d8; --vr-text-friend: #fafafa; --vr-text-favorite: #fbbf24; --vr-border: rgba(255, 255, 255, 0.06); --vr-border-strong: rgba(255, 255, 255, 0.12); --vr-radius: 8px; --vr-font-xs: 14px; --vr-font-sm: 16px; --vr-font-base: 18px; --vr-font-lg: 20px; } body { font-family: var(--font-western), var(--font-symbol), var(--font-primary-cjk), var(--font-fallback-cjk); } .noty_body { display: block; } .noty_layout { width: 75% !important; max-width: none; padding-top: 512px !important; } .noty_theme__relax.noty_bar, .noty_theme__sunset.noty_bar { height: 84px; position: relative; margin: 8px 0; overflow: hidden; border-radius: 8px; } .noty_theme__relax.noty_bar .noty_body, .noty_theme__sunset.noty_bar .noty_body { font-size: 30px; text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1); } .noty_theme__relax.noty_bar .noty_buttons, .noty_theme__sunset.noty_bar .noty_buttons { padding: 10px 20px; } .noty_theme__relax.noty_type__alert, .noty_theme__relax.noty_type__notification { color: #444; background-color: #fff; border: 2px solid #dedede; } .noty_theme__relax.noty_type__warning { color: #826200; background-color: #ffeaa8; border: 2px solid #ffc237; } .noty_theme__relax.noty_type__warning .noty_buttons { border-color: #dfaa30; } .noty_theme__relax.noty_type__error { color: #fff; background-color: #ff8181; border: 2px solid #e25353; } .noty_theme__relax.noty_type__error .noty_buttons { border-color: #8b0000; } .noty_theme__relax.noty_type__info, .noty_theme__relax.noty_type__information { color: #fff; background-color: #78c5e7; border: 2px solid #3badd6; } .noty_theme__relax.noty_type__info .noty_buttons, .noty_theme__relax.noty_type__information .noty_buttons { border-color: #0b90c4; } .noty_theme__relax.noty_type__success { color: #006400; background-color: #bcf5bc; border: 2px solid #7cdd77; } .noty_theme__relax.noty_type__success .noty_buttons { border-color: #50c24e; } .noty_theme__sunset.noty_type__alert, .noty_theme__sunset.noty_type__notification { color: #fff; background-color: #073b4c; } .noty_theme__sunset.noty_type__alert .noty_progressbar, .noty_theme__sunset.noty_type__notification .noty_progressbar { background-color: #fff; } .noty_theme__sunset.noty_type__warning { color: #fff; background-color: #ffd166; } .noty_theme__sunset.noty_type__error { color: #fff; background-color: #ef476f; } .noty_theme__sunset.noty_type__info, .noty_theme__sunset.noty_type__information { color: #fff; background-color: #118ab2; } .noty_theme__sunset.noty_type__success { color: #fff; background-color: #06d6a0; } .noty_theme__sunset.noty_type__error .noty_progressbar { opacity: 0.4; } .noty_theme__sunset.noty_type__info .noty_progressbar, .noty_theme__sunset.noty_type__information .noty_progressbar { opacity: 0.6; } .noty_has_timeout.noty_has_progressbar .noty_progressbar { height: 6px; } .noty-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 16px 16px 0 22px; } .noty-img { height: 84px; float: left; border-radius: 8px; } ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.1); border-radius: 16px; } ::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, 0.25); border-radius: 16px; } body, input, textarea, select, button { font-family: var(--font-western), var(--font-symbol), var(--font-primary-cjk), var(--font-fallback-cjk); line-height: normal; text-shadow: #000 0px 0px 3px, #000 0px 0px 3px, #000 0px 0px 3px, #000 0px 0px 3px, #000 0px 0px 3px, #000 0px 0px 3px; overflow: hidden; } .x-app { position: absolute; display: flex; flex-direction: column; width: 100%; height: 100%; overflow: hidden; } .x-app-type { color: #fff; width: 1024px; height: 1536px; position: relative; overflow: hidden; } .wrist { position: absolute; top: 0px; left: 0; width: 512px; height: 510px; margin-bottom: 2px; z-index: 20; display: flex; flex-direction: column; border-radius: var(--vr-radius); border: 1px solid var(--vr-border-strong); overflow: hidden; } .hmd { position: absolute; top: 512px; left: 0; width: 1024px; height: 1024px; z-index: 10; } .background { background: var(--vr-bg); text-shadow: none; } .x-container { position: relative; flex: none; padding: 6px 10px 2px 10px; overflow: hidden; } .x-containerbottom { padding: 3px 10px 3px; overflow: hidden; font-size: var(--vr-font-base); white-space: nowrap; border-top: 1px solid var(--vr-border-strong); color: var(--vr-text-secondary); font-weight: 400; letter-spacing: 0.01em; line-height: 1.4; } .x-containerbottom span { display: block; overflow: hidden; } .x-containerbottom .vue-marquee-text-component { font-weight: 500; color: var(--vr-text); } .x-containerbottom > br ~ span { font-size: var(--vr-font-sm); color: var(--vr-text-muted); } .np-progress-bar { width: 0%; height: 3px; background: linear-gradient(90deg, rgba(255,255,255,0.6), rgba(255,255,255,0.9)); border-radius: 2px; } .np-progress-circle { position: absolute; bottom: 0; left: 0; width: 120px; height: 120px; transform: rotate(270deg); } .np-progress-circle-stroke { opacity: 0; stroke-dasharray: 189; stroke-dashoffset: 189; } .x-friend-item { box-sizing: border-box; display: flex; align-items: center; font-size: var(--vr-font-base); color: var(--vr-text); font-weight: 400; line-height: 1.25; } .x-friend-item:nth-child(even) { background: rgba(255, 255, 255, 0.015); } .x-friend-item .time { margin-right: 6px; color: var(--vr-text-muted); font-size: var(--vr-font-xs); font-weight: 300; font-variant-numeric: tabular-nums; opacity: 0.9; flex-shrink: 0; } .x-friend-item .name { font-weight: 600; } .item .name { color: var(--vr-text-name); } .friend .name { color: var(--vr-text-friend); } .favorite .name { color: var(--vr-text-favorite); } .x-friend-item > .avatar { position: relative; display: inline-block; flex: none; width: 40px; height: 40px; margin-right: 8px; } .x-friend-item > img.avatar { width: 50px; margin-right: 0; margin-left: 5px; border-radius: 2px; } .x-friend-item > .avatar > img { width: 100%; height: 100%; border-radius: 40%; object-fit: cover; } .x-friend-item > .detail { flex: 1; overflow: hidden; } .x-friend-item > .detail > .name, .x-friend-item > .detail > .extra { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .x-friend-item > .detail > .name { font-weight: 600; } .x-friend-item > .detail > .extra { font-weight: 400; color: var(--vr-text-secondary); } i.x-user-status { display: inline-block; width: 13px; height: 13px; background: var(--status-offline-alt); border-radius: 50%; } i.x-user-status.active { background: var(--status-active); } i.x-user-status.online { background: var(--status-online); } i.x-user-status.joinme { background: var(--status-joinme); mask-image: url(/images/masks/joinme.svg); } i.x-user-status.askme { background: var(--status-askme); mask-image: url(/images/masks/askme.svg); } i.x-user-status.busy { background: var(--status-busy); mask-image: url(/images/masks/busy.svg); } .spin { animation: rotation 2.5s infinite linear; position: absolute; width: 24px; height: 30px; } @keyframes rotation { from { transform: rotate(0deg); } to { transform: rotate(359deg); } } .hud-feed { position: absolute; right: 0; width: 100%; } .hud-feed .item, .hud-timeout .item { margin: 0; text-align: right; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } .hud-feed .item { font-size: 32px; } .hud-feed .combo { color: var(--vr-text-muted); } .hud-timeout .item { font-size: 40px; } .hud-timeout { position: absolute; bottom: 0; right: 0; } .hud-timeout-feed { position: absolute; bottom: 150px; right: 0; color: #ed1b24; } .hud-timeout svg { position: absolute; right: -160px; bottom: 0; } .tracker-warning { color: #fcfb00; } .tracker-warning img { filter: saturate(250%) brightness(151%) hue-rotate(221deg); } .tracker-error { color: #fd4444; } .tracker-error img { filter: saturate(160%) brightness(88%) hue-rotate(161deg); } .vr-bottom-row { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; } .vr-bottom-row > span { display: inline-block; } .vr-bottom-right { margin-left: auto; } .vr-text-muted { color: var(--vr-text-muted); } .vr-mx { margin-left: 5px; margin-right: 5px; } .x-containerbottom:first-of-type { border-top: 1px solid var(--vr-border); padding: 6px 10px 4px; background: rgba(255, 255, 255, 0.01); } .x-friend-item .lucide { width: 16px !important; height: 16px !important; min-width: 16px; color: var(--vr-text-muted); flex-shrink: 0; margin-right: 6px !important; margin-left: 0 !important; position: relative; top: 1px; opacity: 0.8; } .x-friend-item .lucide + .lucide { margin-left: -2px !important; } .x-friend-item .lucide.mx-1 { margin-left: 2px !important; margin-right: 2px !important; opacity: 0.5; } .tracker-container { flex: 1 1 auto; text-align: center; line-height: 16px; width: 48px; font-size: 13px; color: var(--vr-text-secondary); font-weight: 500; font-variant-numeric: tabular-nums; padding: 1px 0; } .tracker-device { display: flex; flex-direction: column; align-items: center; gap: 1px; } .tracker-device img { display: inline-block; height: 20px; transition: all 0.25s linear; opacity: 0.8; } .tracker-device span { font-size: 13px; letter-spacing: 0.02em; }